home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac: Not for Sale / Another.not.for.sale (Australia).iso / fade into you / being there / Issues & Ideas / SGML / arch-form.catalog next >
Text File  |  1992-07-21  |  122KB  |  2,293 lines

  1.  
  2.                 Catalog of HyTime Architectural Forms
  3.                     and HyTime SGML Specification
  4.                       Version 2.0, June 28, 1993
  5.                         By Charles F. Goldfarb
  6.  
  7. This document contains an unofficial compilation of the formal SGML
  8. specifications from the HyTime Standard (ISO/IEC 10744:1992),
  9. cross-referenced to the text that describes them, and with known
  10. errors corrected.  The current version expands on the original by
  11. including the formal specifications of useful element types,
  12. notations, and instances from Annex A. of the standard.  The material
  13. in this document is excerpted from the pre-publication review edition
  14. of "The HyTime Handbook", which I hope will be available for limited
  15. distribution in the fall of 1993.
  16.  
  17.  
  18.                       1. COPYRIGHT AND LICENSES
  19.  
  20. This document is distributed in both printed and machine-readable
  21. form.  It contains formal SGML specifications derived from ISO/IEC
  22. 10744, and additional text and cross-references from The HyTime
  23. Handbook.  The document as a whole is subject to the following
  24. copyright notice and license:
  25.  
  26.      (C) Charles F. Goldfarb 1993.
  27.      Permission to copy in any form is granted for use with
  28.      conforming HyTime systems and applications as defined in
  29.      ISO/IEC 10744, provided that all copies are accurate and
  30.      complete in every respect, including this notice.
  31.  
  32. The above license is intended to encourage the dissemination of the
  33. formal SGML specifications, while assuring that essential information
  34. about variations from the text of the standard (see below) is
  35. disseminated with them.
  36.  
  37. The formal SGML specifications are individually subject to the
  38. following copyright notice and license:
  39.  
  40.      (C) International Organization for Standardization 1992.
  41.      Permission to copy in any form is granted for use with
  42.      conforming HyTime systems and applications as defined in
  43.      ISO/IEC 10744, provided this notice is included in all copies.
  44.  
  45. The above license is intended to facilitate the use of the formal SGML
  46. specifications as a base for developing HyTime applications
  47. (particularly when distributed in machine-readable form).
  48.  
  49.  
  50.                     2. INTRODUCTION TO THE CATALOG
  51.  
  52. The formal SGML specifications that define the architectural forms
  53. appear in the same order as in ISO/IEC 10744.  At the right margins of
  54. the headings that identify the forms are supplementary comments that
  55. identify the clause number and page number of ISO/IEC 10744 where the
  56. forms are defined.  For example, the line:
  57.  
  58.                         <!-- Property Name -->            <!--06.7.2      36-->
  59.  
  60. introduces the "property name" element type form, which is described
  61. in clause 6.7.2, which begins on page 36.  Consult the standard for
  62. the notation and conventions used, which indicate the
  63. interrelationships of the forms and their mandatory or non-mandatory
  64. status.
  65.  
  66. An uppercase heading identifies the HyTime module in which the
  67. following architectural forms occur.  For example, the
  68. forms of the measurement module are introduced by the heading:
  69.  
  70.                          <!-- MEASUREMENT -->             <!--07          38-->
  71.  
  72. The specifications from Annex A are presented similarly, except that
  73. the first-level headings are treated as the equivalent of module
  74. names.
  75.  
  76.  
  77.                     3. CORRECTIONS IN THIS VERSION
  78.  
  79. Although International Standards are subjected to extensive review and
  80. proofreading, early users frequently discover errors.  These are
  81. reported to the Project Editor for eventual consideration by the
  82. responsible standards committee, after which "corrigenda" may be
  83. published to correct the errors officially.
  84.  
  85. Several errors and ambiguities have already been reported; the
  86. proposed corrections and clarifications (hereinafter simply
  87. "corrections") for some of them are reflected in this document.  While
  88. it must be stressed that the corrections are not official (and
  89. theoretically might never be), they are of such a nature that they are
  90. highly likely to be accepted.  Corrections affecting only the text of the
  91. standard (that is, not the formal SGML specifications included in parts
  92. 4 and 5 of this document) are preceded with a currency sign ($).
  93.  
  94. Corrections added in this version of this Catalog are:
  95.  
  96. 00.1       $In "Measurement module" list item: Change
  97.             "finite coordinate space" to "scheduling".
  98. 06.3.1     $Last paragraph: change "HyTime" to 'the second "HyTime"'.
  99. 06.4       $After Note 79 add new para: An element of a type for which the
  100.             "HyTime" attribute is not defined is a "non-HyTime element:";
  101.             it has no HyTime architectural form and therefore cannot affect
  102.             conformance to the meta-DTD.  Both HyTime and non-HyTime
  103.             elements can occur in its content.
  104. 06.4        %resorce: delete from %HyBrid and add to HyDoc inclusions.  (Note:
  105.             inclusion group is now too large for reference concrete syntax,
  106.             but DTDs can use other means to specify where resources occur.)
  107. 06.4.1      HyBrid: delete inclusion group.
  108. 06.4.2      nHyTime: change to "sHyTime" ("suppress HyTime element");
  109.             only attributes of nested sHyTime elements are processed.
  110. 06.4.2     $sHyTime: delete 2nd paragraph and Note 86.
  111. 06.5.2     $lexmodel: attribute should be "lexical model element type GIs
  112.             (lextypgi).
  113. 06.5.2.1   $lexmodel: requires support of "lextype" option.
  114. 06.5.5.2    dvlist: change "attlist" to "attspecs".
  115. 06.6.2     $Second para: change "HyTime NAME nHyTime" to "HyTime
  116.             architectural form (HyTime)"; move existing last sentence
  117.             of 2nd para to become last sentence of 1st para; add new
  118.             last sentence of 2nd para: The value of the "HyTime"
  119.             attribute indicates whether the entity is to be treated as data
  120.             or parsed as an SGML document, subdocument, or text entity.
  121. 06.6.2      "HyTime" attribute was omitted from formal SGML specification.
  122. 06.6.2     $altreps: need not use different data content notations.
  123. 06.6.2      insbento: offset changed to "origin 1" like (dimspec).
  124. 07.1.1     $Note 142: change "qcnt" to "quantum count".
  125. 07.4.1.2    elemref: add "calspec" to reftype group.
  126. 08.2.1      locsrc: default value changed to "#CURRENT".
  127. 08.3.2.2    nametype: default value changed to "entity".
  128. 08.3.2.2    obnames: default value changed to "nobnames".
  129. 08.4.1     $Add to 4th para: During concatenation, data content of  elements
  130.             that occur in element content is separated from the data content
  131.             of siblings by a SPACE character.
  132. 08.4.1      catsrce and catres: add additional keywords (catsrcsp and catressp)
  133.             to indicate when a SPACE character is inserted at each
  134.             concatenation point.
  135. 08.4.2.2   $dataobj: in definition, change "an entity" to "a data entity".
  136. 08.4.2.7   $document position: There are two document position properties,
  137.             for pathloc and treeloc.  The marker list contains positive
  138.             markers only.
  139. 08.5.2      notloc: in comment, change "address" to "HyTime address".
  140. 09.2.1      linkends: clarifies that one can be omitted, in which case
  141.             the ilink is the first anchor (for clink compatibility).
  142. 09.2.1      ilink: Clarify reftype constraint comment.
  143. 09.2.2      clink: Clarify reftype constraint comment.
  144. 10.2        fcs: multiple FCS elements of same element type describe different
  145.             spaces unless they have the same "fcsname" attribute (which
  146.             requires the "splitfcs" option).
  147. 10.3        axisord: omitted axis name means all events occupy full dimension.
  148. 10.7        impfcs: type of imposed FCS; change "IDREF" to "NAME".
  149. 10.8.1      calspec: respecify content model to remove ambiguity.
  150. A.1.3       arg: balance parentheses.
  151. A.1.3       ATTORCON: balance parentheses.
  152. A.1.3       qpn: balance parentheses.
  153. A.2         HyPD qltnlmgi: "gil" changed to "GIL".
  154. A.2.1.2.2   docpos: clarify as "pathloc document position" and add
  155.             docpostl: treeloc document position
  156. A.2.1.2.3   KEYWORD: psn=HTsem3; add definition.
  157. A.2.1.2.3   tag: psn=HTsem3.
  158. A.3.1      $HyQ: Add after 4th para: Query args, operands, and other nl nodes
  159.             are evaluated as they are ordered (left to right), and before the
  160.             query (or operator or other nl) is evaluated.
  161. A.3.2      $HyQ: Formal definition should be in HyLex (contributions welcomed).
  162. A.3.2       @lc: definition changed to "Value of attribute defined elsewhere"
  163. A.3.2       Delete informal heading "-- HyQ --" and number others A.3.2.1-9.
  164. A.3.2.1     dquery, iquery: allow qdomain without args.
  165. A.3.2.1     qdomain: correct second comment.
  166. A.3.2.1     args: should allow nl as well as nodes.
  167. A.3.2.4     union: clarify description of result nl.
  168. A.3.2.4     inter: clarify description of result nl.
  169. A.3.2.4     diff: eliminate ambiguity between diff and symmetric diff.
  170. A.3.2.6     hylex: balance single quotes.
  171. A.3.2.7     Forall: clarify argument query applies to each nl node in order.
  172. A.3.2.8     Compare: delete comma after "@quantum?".
  173. A.3.2.8     ordered: clarify that overlap refers to position.
  174. A.3.3       HyQ qltnlmgi: "gil" changed to "GIL".
  175. A.5.2.5     Chain: change "feet" to "foot".
  176.  
  177.  
  178. Corrections added in Version 1.0 are:
  179.  
  180. 06.5.7      Actypes: changed "S+" to "s+".
  181. 08.4.2.3    Erroneous title "Tree Locations" changed to "Node Locations".
  182. 09.2.1      Anchrole: NAMES changed to CDATA because of RNI.
  183. 09.2.2      Clink: Deleted erroneous constraint comment for element.
  184. 10.2        Module heading "Scheduling" added.
  185. 10.2        Axisdefs: "gil" changed to "GIL".
  186. 10.3        Axisord: "gil" changed to "GIL".
  187. General     Left-aligned heading/title comments were centered.
  188.  
  189.  
  190.                         4. ARCHITECTURAL FORMS
  191.  
  192.                          <!-- BASE MODULE -->              <!--06         12-->
  193.                        <!-- HyTime Document -->            <!--06.4       18-->
  194. <!ENTITY % loc     -- Location address architectural forms --
  195.  "bibloc|nameloc|dataloc|treeloc|pathloc|listloc|relloc|proploc|notloc|fcsloc">
  196. <!ENTITY % link    -- Hyperlink architectural forms --
  197.            "clink|ilink">
  198. <!ENTITY % resbase -- Resource architectural forms: base module --
  199.            "activity|dvlist|desctab|lexmodel|lexord|propdef|qltn|qpn">
  200. <!ENTITY % resmeas -- Resource architectural forms: measurement module --
  201.            "dimspec|extent|extlist|dimref|markfun|measure">
  202. <!ENTITY % resschd -- Resource architectural forms: scheduling module --
  203.            "axis|exrecon|calspec|mallobj">
  204. <!ENTITY % resrend -- Resource architectural forms: rendition module --
  205.            "rendrule|batrule|modrule|wandrule|wndpatch|modpatch">
  206. <!ENTITY % resorce -- Resource architectural forms: all modules --
  207.            "(%resbase;)|(%resmeas;)|(%resschd;)|(%resrend;)">
  208. <!ENTITY % HyBrid  -- HyBrid content (for use in content models) --
  209.            "fcs|HyBrid|sHyTime|#PCDATA"
  210. >
  211. <!element HyDoc    -- HyTime document element --
  212.                    - O      (%HyBrid;)* +(%loc;|%link;|%resorce;) >
  213. <!attlist HyDoc    HyTime   -- HyTime architectural form --
  214.                             -- Unique value specified by standard
  215.                                for each element type form --
  216.                             NAME     HyDoc
  217.                    id       ID       #IMPLIED  -- Default: none --
  218.                    boslevel -- Bounding level of HyTime bounded object set when
  219.                                document is a hub; overridable at run time --
  220.                             -- Constraint: 0=no limit; 1=root; 2 to N --
  221.                             NUMBER   #IMPLIED  -- Default: application BOS --
  222.                    unmspace -- Unified name space for IDs and entities --
  223.                             (unified|separate) separate
  224.                             -- docmdu attributes --
  225. >
  226.  
  227.               <!-- HyTime/non-HyTime Bridge Element -->    <!--06.4.1     20-->
  228. <!element HyBrid   -- HyTime/non-HyTime bridge element --
  229.                    -- Bridge between HyTime and non-HyTime elements --
  230.                    - O      (%HyBrid;)* >
  231. <!attlist HyBrid   HyTime   NAME     HyBrid >
  232.  
  233.                    <!-- Suppress HyTime Element -->        <!--06.4.2     20-->
  234. <!element sHyTime  -- Suppress HyTime element --
  235.                    -- Establishes "no HyTime processing" mode for all levels
  236.                       of its content, except for attributes of nested sHyTime
  237.                       elements --
  238.                    - O      ANY >
  239. <!attlist sHyTime  HyTime   NAME     sHyTime >
  240.  
  241.                        <!-- Identification -->             <!--06.5.1     21-->
  242. <!attlist all-id
  243.                    id       -- SGML unique identifier --
  244.                             ID       #IMPLIED  -- Default: none --
  245.                    notation -- Data content notation --
  246.                             NAME     #IMPLIED  -- Default: none --
  247.                    delims   -- Data content notation delimiter changes --
  248.                             -- Constraint: names are delimiter role names --
  249.                             -- Constraint: a given NAME can occur only once --
  250.                             -- lextype( (NAME, s+, char*),
  251.                                         (s+, NAME, s+, char*)* ) --
  252.                             CDATA    #IMPLIED  -- Default: not changed --
  253.                    conloc   -- Content location (if not in syntactic content) --
  254.                             -- Constraint: data or element that satisfies
  255.                                this element's content model, or element whose
  256.                                content satisfies this element's content model.--
  257.                             IDREFS   #CONREF   -- Default: syntactic content --
  258.                    context  -- Contextual content --
  259.                             (context|ncontext) ncontext
  260.                    HyNames  -- User names for HyTime attributes --
  261.                             -- Constraint: a given ATTNAME or #CONTENT
  262.                                can occur only once --
  263.                             -- lextype(ATTNAME, s+, (NAME|(RNI,"CONTENT")),
  264.                                   (s+, ATTNAME, s+, (NAME|(RNI,"CONTENT")))*) --
  265.                             CDATA    #FIXED "" -- Default: none --
  266. >
  267.  
  268.                         <!-- Lexical Types -->             <!--06.5.2     22-->
  269. <!attlist all-lex
  270.                    lextype  -- Lexical types of attribute values
  271.                                or character data content --
  272.                             -- Constraint: a given ATTNAME or #CONTENT
  273.                                can occur only once; a qltn must be an ltn of a
  274.                                lexmodel whose GI is specified in lextypgi --
  275.                             -- lextype(ATTORCON, s+, QLTN,
  276.                                       (s+, ATTORCON, s+, QLTN)*) --
  277.                             CDATA    #FIXED "" -- Default: none defined --
  278.                    lextypgi -- Lexical model element types used by lextype --
  279.                             -- Constraint: searched in order listed; must
  280.                                be GIs of lexmodel form element types --
  281.                             -- lextype(GIL) --
  282.                             NAMES    #FIXED in-DTD
  283. >
  284.  
  285.                         <!-- Lexical Model -->             <!--06.5.2.1   23-->
  286. <!element lexmodel -- Lexical model --
  287.                    - O      (%HyBrid;)* >
  288. <!attlist lexmodel HyTime   NAME     lexmodel
  289.                    ltn      -- Lexical type name --
  290.                             -- Constraint: unique in element type --
  291.                             NAME     #REQUIRED
  292.                    lexord   -- Lexicographic ordering for comparisons --
  293.                             -- reftype(lexord) --
  294.                             -- lextype(IDREF|(RNI,"SGMLCASE")) --
  295.                             CDATA    #IMPLIED  -- Default: character set order--
  296.                    boundary -- Hit boundary constraint --
  297.                             (sodeod|sodiec|isceod|isciec|inmodel) sodeod
  298. >
  299.  
  300.               <!-- Lexicographic Ordering Definition -->   <!--06.5.2.2   24-->
  301. <!element lexord   -- Lexicographic Ordering Definition --
  302.                    - O      (grapheme+) >
  303. <!attlist lexord   HyTime   NAME     lexord
  304.                    id       ID       #REQUIRED
  305. >
  306. <!element grapheme -- Grapheme comparison key --
  307.                    - O      (%HyBrid;)* >
  308. <!attlist grapheme HyTime   NAME     grapheme
  309.                    gs       -- Grapheme string (case-sensitive) --
  310.                             -- Constraint: must be unique in lexord --
  311.                             CDATA    #REQUIRED
  312.                    gck      -- Grapheme comparison key --
  313.                             NUMBERS  #IMPLIED  -- Default: ignored in compare --
  314. >
  315.  
  316.                <!-- ID Reference Resolution Control -->    <!--06.5.3     24-->
  317. <!attlist all-ref
  318.                    refrange -- ID reference resolution range --
  319.                             -- B  Backward reference to identified local element
  320.                                D  Identified local element, before or after
  321.                                I  Location address allowed
  322.                                X  Indirect target, external to reference --
  323.                             -- Attribute declared value or lextype is IDREF --
  324.                             -- Constraint: a given ATTNAME or #CONTENT
  325.                                can occur only once --
  326.                             -- lextype( (RNI,"ALL", s+, ("B"|"D"|"I"|"X"))?,
  327.                                         (s+, ATTORCON,
  328.                                                     s+, ("B"|"D"|"I"|"X"))* ) --
  329.                             CDATA    #FIXED "#ALL I"
  330.                    reflevel -- ID reference resolution level --
  331.                             -- Level that IDREF resolution cannot exceed,
  332.                                relative to this element. --
  333.                             -- lextype( (RNI,"ALL", s+, unzi)?,
  334.                                         (s+, ATTORCON, s+, unzi)* ) --
  335.                             CDATA    #IMPLIED  -- Default: resolve fully --
  336.                    reftype  -- ID reference element type --
  337.                             -- Attribute declared value or lextype is IDREF --
  338.                             -- Constraint: a given ATTNAME or #CONTENT can occur
  339.                                only once; types apply to locations, not to
  340.                                intermediate location address elements --
  341.                             -- lextype(
  342.                                (RNI,"ALL", s+,
  343.                                 (((GI|unzi), (s+, RNI,"SEQ")?)|(RNI,"ANY")))?,
  344.                                (s+, ATTORCON, s+,
  345.                                 (((GI|unzi), (s+, RNI,"SEQ")?)|(RNI,"ANY")))*)--
  346.                             CDATA    #FIXED "#ALL #ANY"
  347. >
  348.  
  349.                  <!-- Bit Combination Skip Count -->       <!--06.5.4     27-->
  350. <!attlist all-bits
  351.                    bitskip  -- Number of unparsed bit combinations
  352.                                to skip till end of element --
  353.                             NUMBERS  #IMPLIED  -- Default: not known --
  354. >
  355.  
  356.                 <!-- Default Value List Attributes -->     <!--06.5.5.1   27-->
  357. <!attlist all-dvl
  358.                    subdvl   -- Subelement impliable attribute value defaults --
  359.                             -- reftype(dvlist) --
  360.                             IDREFS   #IMPLIED  -- Default: none --
  361.                    sibdvl   -- Sibling impliable attribute value defaults --
  362.                             -- reftype(dvlist) --
  363.                             IDREFS   #IMPLIED  -- Default: none --
  364. >
  365.  
  366.                      <!-- Default Value List -->           <!--06.5.5.2   28-->
  367. <!element dvlist   -- Default value list --
  368.                    - O      (#PCDATA) -- ulextype(attspec) -->
  369. <!attlist dvlist   HyTime   NAME     dvlist
  370.                    id       ID       #REQUIRED
  371.                    dvgi     -- Default value element types --
  372.                             -- Applies to all elements if omitted --
  373.                             -- lextype(GIL) --
  374.                             NAMES    #IMPLIED  -- Default: all elements --
  375.                    preatts  -- Attributes whose values are to be preempted --
  376.                             -- Constraint: must be in dvlist content --
  377.                             NAMES    #IMPLIED  -- Default: none --
  378. >
  379.  
  380.                  <!-- Descriptive Text Attributes -->      <!--06.5.6.1   29-->
  381. <!attlist all-desc
  382.                    desctxt  -- Descriptive text --
  383.                             -- If specified, its descdef in desctab is treated
  384.                                by HyTime as the element or as its content. --
  385.                             -- lextype(words) --
  386.                             CDATA    #CONREF   -- Default: none --
  387.                    desctab  -- Current description tables --
  388.                             -- Constraint: searched in order listed --
  389.                             -- reftype(desctab) --
  390.                             IDREFS   #CURRENT
  391. >
  392.  
  393.                       <!-- Description Table -->           <!--06.5.6.2   29-->
  394. <!element desctab  -- Descriptive text definition table --
  395.                    - O      (desctxt, descdef)+ >
  396. <!attlist desctab  HyTime   NAME     desctab
  397.                    id       ID       #REQUIRED >
  398.  
  399.                       <!-- Descriptive Text -->            <!--06.5.6.3   30-->
  400. <!element desctxt  -- Descriptive text --
  401.                    O O      (#PCDATA) -- lextype(words) -->
  402. <!attlist desctxt  HyTime   NAME     desctxt >
  403.  
  404.                  <!-- Descriptive Text Definition -->      <!--06.5.6.4   30-->
  405. <!element descdef  -- Descriptive text definition --
  406.                    O O      (%HyBrid;)* >
  407. <!attlist descdef  HyTime   NAME     descdef >
  408.  
  409.                   <!-- Activity Tracking Policy -->        <!--06.5.7     30-->
  410. <!attlist all-act
  411.                    activity -- Activity tracking policy for this element --
  412.                             -- reftype(activity) --
  413.                             IDREFS   #IMPLIED  -- Default: none --
  414. >
  415. <!element activity -- Activity tracking policy --
  416.                    - O      (%HyBrid;)* >
  417. <!attlist activity HyTime   NAME     activity
  418.                    id       ID       #REQUIRED
  419.                    actypes  -- Activity types to which policy applies --
  420.                             -- lextype(("CREATE"|"MODIFY"|"LINK"
  421.                                        |"ACCESS"|"UNLINK"|"DELETE"),
  422.                                   (s+, ("CREATE"|"MODIFY"|"LINK"
  423.                                        |"ACCESS"|"UNLINK"|"DELETE"))*) --
  424.                             NAMES    access
  425. >
  426.  
  427.                    <!-- HyTime Data Attributes -->         <!--06.6       32-->
  428.    <!-- Standard Bento Entity for Natural Transport of Objects -->
  429.                                                             <!--06.6.1    32-->
  430.                    <!-- Common Data Attributes -->         <!--06.6.2     32-->
  431. <!attlist #NOTATION sbento  -- Attributes of sbento data content notation type--
  432.                             -- Creates container by partitioning storage object
  433.                                so several entities can store data in it. --
  434.                    HyTime   NAME     sbento
  435.                    unitsize -- Sbento partitioning unit size (bits per unit) --
  436.                             NUMBER   8
  437. >
  438.  
  439. <!attlist #NOTATION any-dcn -- use: sbento sHyTime --
  440.                             -- Common attributes of data content notations --
  441.                             -- Any or all can be defined for a notation.
  442.                                Notation-specific alternatives can be used. --
  443.                    HyTime   -- Architectural form of notation: data, SGML
  444.                                document, SGML subdocument, or SGML text. --
  445.                                (data|document|subdoc|text) data
  446.                    nsbento  -- Location of this entity in a sbento's storage --
  447.                             -- External identifier of entity must be same as on
  448.                                sbento entity so SDIF will not duplicate data --
  449.                             -- ENTITY: sbento entity in which this occurs.
  450.                                Digit+: Offset in sbento units (origin 1).
  451.                                Digit+: Size in sbento units.
  452.                                Offset/size repeatable for segmentation --
  453.                             -- lextype(ENTITY, (s+, digit+, s+, digit+)+) --
  454.                             CDATA    #IMPLIED  -- Default: not in a sbento --
  455.                    modgen   -- Modification generation --
  456.                             -- Constraint: two numbers --
  457.                             -- 1st: 0 when created; incremented when modified.
  458.                                2nd: Set to 1st when validated by application. --
  459.                             NUMBERS  #IMPLIED  -- Default: not tracked --
  460.                    altreps  -- Alternative representations of this entity --
  461.                             -- Modgens can be compared for integrity checking --
  462.                             -- lextype(ENTITIES) --
  463.                             NAMES    #IMPLIED  -- Default: none --
  464.                    superdcn -- Notation from which this one is derived --
  465.                             -- lextype(NOTATION) --
  466.                             NAME     #IMPLIED  -- Default: not a derivation --
  467.                    template -- Parsing and processing context for the entity --
  468.                             -- E.g.: macro definitions, profile, model, header,
  469.                                that are shared by several data entities --
  470.                             -- lextype(ENTITY) --
  471.                             NAME     #IMPLIED  -- Default: none --
  472.                    methods  -- Handlers for encapsulated data --
  473.                             -- Constraint: notation-specific format --
  474.                             CDATA    #IMPLIED  -- Default: none --
  475.                    degrade  -- Degradation strategy if can't render perfectly --
  476.                             -- Constraint: notation-specific format --
  477.                             CDATA    #IMPLIED  -- Default: none --
  478.                    encoding -- Platform-dependent encoding information --
  479.                             -- Constraint: bit-combination size and "word"
  480.                                size, expressed as permutation of normalized
  481.                                word of 2, 4, or 8 bit combinations.
  482.                                MSB is leftmost and numbered "1" --
  483.                             -- Normalized="8 12", "8 1234", "8 12345678"
  484.                                Example: Intel="8 21", "8 2143", "8 21436587" --
  485.                             NUMBERS  "8 12"
  486.                    HyNames  -- User names for HyTime attributes --
  487.                             -- lextype(ATTNAME, s+, NAME,
  488.                                   (s+, ATTNAME, s+, NAME)*) --
  489.                             CDATA    #FIXED "" -- Default: none --
  490. >
  491.  
  492.                      <!-- Property Definition -->          <!--06.7.1     35-->
  493. <!element propdef  -- Property definition --
  494.                    - O      (%HyBrid;)* >
  495. <!attlist propdef  HyTime   NAME     propdef
  496.                    pn       -- Property name --
  497.                             -- Constraint: must be unique in property set --
  498.                             NAME     #REQUIRED
  499.                    psn      -- Property set name --
  500.                             -- lextype(NOTATION) --
  501.                             NAME     #REQUIRED
  502.                    lex      -- Lexical type of property if not inherent --
  503.                             -- reftype(qpn|qltn) --
  504.                             -- lextype(QPN|QLTN|("Oo",GRPO,IDREF,GRPC)) --
  505.                             CDATA    #IMPLIED
  506.                    inherent -- Source of inherent property --
  507.                             -- lextype(NOTATION) --
  508.                             NAME     #IMPLIED
  509.                    dspec    -- Definition of specifier for property --
  510.                             -- reftype(qpn|qltn) --
  511.                             -- lextype(QPN|QLTN|("Oo",GRPO,IDREF,GRPC)) --
  512.                             CDATA    #IMPLIED
  513.                    deforsyn -- Definition or synonym? --
  514.                             (def|syn) def
  515. >
  516.  
  517.                    <!-- Qualified Property Name -->        <!--06.7.2     36-->
  518. <!element qpn      -- Qualified property name --
  519.                    - O      (pn, spec?)+ >
  520. <!attlist qpn      HyTime   NAME     qpn
  521.                    id       ID       #REQUIRED
  522. >
  523.                         <!-- Property Name -->             <!--06.7.2     36-->
  524. <!element pn       -- Property name --
  525.                    -- Constraint: must be a valid property name in psn --
  526.                    - O      RCDATA -- lextype(PN) -- >
  527. <!attlist pn       HyTime   NAME     pn
  528.                    psn      -- Property set name --
  529.                             -- lextype(NOTATION) --
  530.                             NAME     #IMPLIED  -- Default: from qpnpsn --
  531. >
  532.                    <!-- Specifier for Property -->         <!--06.7.2     36-->
  533. <!element spec     -- Specifier for property --
  534.                    - O      ((qpn|qltn)+|pval) >
  535. <!attlist spec     HyTime   NAME     spec
  536. >
  537.                  <!-- Qualified Lexical Type Name -->      <!--06.7.2     36-->
  538. <!element qltn     -- Qualified lexical type name --
  539.                    -- Constraint: must be a valid ltn of lmgi element type --
  540.                    - O      RCDATA -- lextype(LTN) -- >
  541. <!attlist qltn     HyTime   NAME     qltn
  542.                    lmgi     -- Lexical model GI --
  543.                             -- lextype(GI) --
  544.                             NAME     #IMPLIED  -- Default: from qltnlmgi --
  545. >
  546.                        <!-- Property Value -->             <!--06.7.2     36-->
  547. <!element pval     -- Property value --
  548.                    -- Constraint: must satisfy property --
  549.                    - O      RCDATA >
  550. <!attlist pval     HyTime   NAME     pval >
  551.  
  552.                  <!-- Qualifying Name Attributes -->       <!--06.7.3     37-->
  553. <!attlist all-qual
  554.                    qpnpsn   -- QPN property set names --
  555.                             -- Constraint: searched in order listed --
  556.                             -- lextype(NOTATION, (s+, NOTATION)*) --
  557.                             NAMES    #IMPLIED  -- Default: standard sets --
  558.                    qltnlmgi -- QLTN lexical model GIs --
  559.                             -- Constraint: searched in order listed --
  560.                             -- lextype(GIL) --
  561.                             NAMES    #IMPLIED  -- Default: none used --
  562. >
  563.  
  564.                          <!-- MEASUREMENT -->              <!--07         38-->
  565.                     <!-- Dimension Specification -->       <!--07.1.2     39-->
  566. <!element dimspec  -- Dimension specification --
  567.                    -- Constraint: Content must resolve to a pair of markers
  568.                       (unless marker1 omitted for implied dimref) --
  569.                    O O   (marklist, marklist?) >
  570. <!attlist dimspec  HyTime   NAME     dimspec
  571.                    id       ID       #IMPLIED  -- Default: none --
  572. >
  573.  
  574.                       <!-- Overrun Handling -->            <!--07.1.2.1   40-->
  575. <!attlist overrun           -- use: evsched baton wand relloc
  576.                                dataloc treeloc pathloc listloc fcsloc --
  577.                    overrun  -- Handling of dimension that overruns range --
  578.                             (error|wrap|trunc|ignore) error
  579. >
  580.  
  581.                       <!-- Axis Marker List -->            <!--07.1.2.2   40-->
  582. <!ENTITY % marker  -- Element type forms allowed in axis marker lists --
  583.            "marklist|dimref|markfun|mrkquery|calspec">
  584. <!element marklist -- List of axis markers or their equivalents --
  585.                    -- Constraint: nested marklists merge into single list --
  586.                    -- Constraint: calspec permitted only in calendars --
  587.                    O O      (%marker;|#PCDATA)* -- lextype(snzi*) -->
  588. <!attlist marklist HyTime   NAME     marklist
  589. >
  590.  
  591.                 <!-- Dimension Specification List -->      <!--07.1.2.3   41-->
  592. <!element dimlist  -- Constraint: derives dimspecs from marker pairs.
  593.                       Nested marklist/dimlist merge into single list with
  594.                       effect of "((marker1,marker2)|dimspec)*" --
  595.                    -- Constraint: calspec permitted only in calendars --
  596.                    O O      (dimlist|dimspec
  597.                             |%marker;|#PCDATA)* -- lextype(snzi*) -->
  598. <!attlist dimlist  HyTime   NAME     dimlist
  599. >
  600.  
  601.                     <!-- Extent Specification -->          <!--07.2.2     41-->
  602. <!attlist exspec            -- use: event proscope modscope --
  603.                    exspec   -- Extent specification --
  604.                             -- Constraint: multiple references concatenated --
  605.                             -- reftype(extlist) --
  606.                             IDREFS   #REQUIRED
  607. >
  608.  
  609.                       <!-- Scheduled Extent -->            <!--07.2.3     42-->
  610. <!element extent   -- Scheduled extent --
  611.                    -- Constraint: multiple dimlists concatenated into one list,
  612.                       which must contain one dimspec per axis --
  613.                    O O      (dimlist+) >
  614. <!attlist extent   HyTime   NAME     extent
  615.                    id       ID       #IMPLIED  -- Default: none --
  616. >
  617.  
  618.                     <!-- Scheduled Extent List -->         <!--07.2.4     42-->
  619. <!element extlist  -- Scheduled extent list --
  620.                    -- Constraint: derives dimspecs from marker pairs and
  621.                       extents from dimspec sequences (one per axis) and
  622.                       interspersed syntactic extents --
  623.                    -- Constraint: nested marklist/dimlist/extlist merge into
  624.                       single list with effect of
  625.                       "(((marker1,marker2)|dimspec)+|extent)+" --
  626.                    -- Constraint: calspec permitted only in calendars --
  627.                    O O     (extlist|extent|dimlist|dimspec
  628.                            |%marker;|#PCDATA)* -- lextype(snzi*) -->
  629. <!attlist extlist  HyTime   NAME     extlist
  630.                    id       ID       #IMPLIED  -- Default: none --
  631. >
  632.  
  633.                 <!-- Measurement Domain Definition -->     <!--07.3.1     43-->
  634. <!element measure  -- Measurement domain: convertible granules --
  635.                    -- Defines granules in terms of a reference granule
  636.                       and ultimately a standard measurement unit (SMU) --
  637.                    -- Multiple definitions with same SMU comprise one domain --
  638.                    - O      (granule+) >
  639. <!attlist measure  HyTime   NAME     measure
  640.                    id       ID       #IMPLIED  -- Default: none --
  641.                    smu      -- Standard measurement unit for domain --
  642.                             -- Constraint: notation name of an SMU.
  643.                                If virtual, it must have a formal public ID
  644.                                of "Virtual Measurement Unit" --
  645.                             NAME     #REQUIRED
  646. >
  647. <!element granule  -- Granule definition --
  648.                    - O      (%HyBrid;)* >
  649. <!attlist granule  HyTime   NAME     granule
  650.                    gn       -- Granule name (case-sensitive) --
  651.                             -- Constraint: cannot be same as SMU name
  652.                                (with case ignored) --
  653.                             -- lextype(word) --
  654.                             CDATA    #REQUIRED
  655.                    gd       -- Granule definition expression --
  656.                             -- Constraint: ratio, and reference granule that
  657.                                ratio is multiplied by (or the SMU, for which
  658.                                case is ignored) --
  659.                             -- lextype(frac, s+, word) --
  660.                             CDATA    #REQUIRED
  661. >
  662.  
  663.                     <!-- Schedule Measurement -->          <!--07.3.3     44-->
  664. <!attlist schdmeas          -- use: evsched baton wand --
  665.                    basegran -- Base granule for each axis --
  666.                             -- lextype(words) --
  667.                             CDATA    #FIXED "" -- Default: SMU for each --
  668.                    gran2hmu -- Granule to HMU ratio for each axis --
  669.                             -- Constraint: 1 ratio per axis, or 1 for all --
  670.                             -- lextype(fracs) --
  671.                             NUMBERS  #FIXED "1 1"
  672. >
  673.  
  674.                      <!-- Dimension Reference -->          <!--07.4.1.2   45-->
  675. <!element dimref   -- Dimension reference --
  676.                    - O      (%HyBrid;)* >
  677. <!attlist dimref   HyTime   NAME     dimref
  678.                    id       ID       #IMPLIED  -- Default: none --
  679.                    elemref  -- Element referenced --
  680.                             -- Constraint: semantic constraints on references
  681.                                across axes (for example, a calspec is only
  682.                                permitted in a reference to a calendar event).
  683.                                #SCOPE permitted only in a scheduled extent in a
  684.                                projectr, meaning dimension of projectr scope,
  685.                                or a grpdex, meaning dimension of grpscope. --
  686.                             -- reftype(dimspec|axis|extent|evsched|wand|baton
  687.                                |evgrp|event|modscope|proscope|calspec) --
  688.                             -- lextype(IDREF|(RNI,"SCOPE")) --
  689.                             CDATA    #REQUIRED
  690.                    extref   -- Extent referenced --
  691.                             -- 1=first or only extent --
  692.                             NUMBER   1
  693.                    axisref  -- Axis referenced --
  694.                             -- Constraint: must be axis of referenced event --
  695.                             -- lextype(GI) --
  696.                             NAME     #IMPLIED  -- Default: dimspec or 1 axis --
  697.                    projectr -- Event projector --
  698.                             -- For reference to projected dimension of an event
  699.                                or an evgrp, the projector that will create it --
  700.                             -- Constraint: in same pevsched as reference --
  701.                             -- reftype(projectr) --
  702.                             IDREF    #IMPLIED  -- Default: not projected --
  703.                    selcomp  -- Selected component of dimension --
  704.                            (first|last|qcnt) qcnt
  705.                    flip     -- Last is normally counted from end of range
  706.                                (negative sign), and first from start of range
  707.                                (positive).  Qcnt is also normally positive.
  708.                                Flip counts last from start of range (making it
  709.                                positive), and first from end of range (making
  710.                                it negative). Flip also makes qcnt negative. --
  711.                             (flip|noflip) noflip
  712.                    calevref -- Calendar event reference --
  713.                             -- For reference to calendar event from within a
  714.                                calendar event, returns dimension component in
  715.                                this schedule with same calspec as referenced
  716.                                element has in its schedule. --
  717.                                (calevref|normal) normal
  718. >
  719.  
  720. <!element markfun  -- Marker function --
  721.                    -- Represents (i.e., function returns) an axis marker --
  722.                    - O      (%HyBrid;)* >
  723. <!attlist markfun  HyTime   NAME     markfun
  724.                    id       ID       #IMPLIED  -- Default: none --
  725.                             -- function attributes --
  726. >
  727. <!attlist function          -- use: markfun nmquery mrkquery notloc bibloc --
  728.                    fn       -- Function name --
  729.                             -- Constraint: unique in element type --
  730.                             NAME     #IMPLIED  -- Default: none --
  731.                    usefn    -- Fn of another function to which to pass
  732.                                the args of this one --
  733.                             NAME     #CONREF   -- Default: none --
  734.                    args     -- Argument string passed to the function
  735.                                (if supported by function language) --
  736.                             CDATA    #IMPLIED  -- Default: none --
  737. >
  738.  
  739.                    <!-- Document MDU Attributes -->        <!--07.4.2.3   49-->
  740. <!attlist docmdu            -- use: HyDoc --
  741.                    docmdu   -- SMU to MDU ratio that makes the MDU a
  742.                                common denominator of HMUs for all schedules in
  743.                                all FCS that are in a given measurement domain.--
  744.                             -- Constraint: SMU name and ratio for all of the
  745.                                measurement domains used in the document. --
  746.                             -- lextype((NAME,s+,frac),(s+,NAME,s+,frac)*) --
  747.                             CDATA    #FIXED "" -- Default: "1 1 for each SMU" --
  748. >
  749.  
  750.                       <!-- LOCATION ADDRESS -->            <!--08         50-->
  751.                        <!-- Location Source -->            <!--08.2.1     52-->
  752. <!attlist locsrc            -- use: dataloc treeloc pathloc relloc
  753.                                     listloc proploc fcsloc --
  754.                    locsrc   -- location source --
  755.                             -- Constraint: No HyTime reftype constraints --
  756.                             IDREFS   #CURRENT  -- Default: previous specified --
  757. >
  758.  
  759.                       <!-- Multiple Location -->           <!--08.2.2     52-->
  760. <!attlist multloc           -- use: nameloc dataloc treeloc pathloc
  761.                                     listloc relloc proploc notloc fcsloc --
  762.                    ordering -- Is ordering of locations significant? --
  763.                             (ordered|noorder) noorder
  764.                    set      -- Make multiple a set by ignoring duplicates --
  765.                             (set|notset) notset
  766.                    aggloc   -- Are multiple locations an aggregate? --
  767.                                (aggloc|agglink|nagg) nagg
  768. >
  769.  
  770.                         <!-- Span Location -->             <!--08.2.3     53-->
  771. <!attlist spanloc           -- use: nameloc dataloc treeloc pathloc
  772.                                listloc relloc --
  773.                    spanloc  -- Do multiple locations comprise a span? --
  774.                             -- Constraint: spanlink requires hyperlinks module--
  775.                             (spanloc|spanlink|nspan) nspan
  776.                    limsort  -- Are limits sorted with span start first? --
  777.                             (limsort|nlimsort) nlimsort
  778. >
  779.  
  780.                     <!-- Name Space Locations -->          <!--08.3       54-->
  781.                    <!-- Named Location Address -->         <!--08.3.2.1   55-->
  782. <!element nameloc  -- Assigns a local ID to one or more named objects --
  783.                    -- Constraint: name list derived from content elements. --
  784.                    - O      (nmlist|nmquery)* >
  785. <!attlist nameloc  HyTime   NAME     nameloc
  786.                    id       ID       #REQUIRED
  787.                             -- multloc attributes --
  788.                             -- spanloc attributes --
  789. >
  790.  
  791.                    <!-- Name List Specification -->        <!--08.3.2.2   55-->
  792. <!element nmlist   -- List of local or external ID or entity names --
  793.                    - O      (#PCDATA) -- lextype(NAMES) -->
  794. <!attlist nmlist   HyTime   NAME     nmlist
  795.                    nametype -- Entity names or IDs of elements --
  796.                             (entity|element|unified) entity
  797.                    obnames  -- Objects treated as names? --
  798.                             (obnames|nobnames) nobnames
  799.                    docorsub -- SGML document or subdoc whose prolog declares
  800.                                entities or elements named in name list;
  801.                                initially the document in which this occurs. --
  802.                             ENTITY   #IMPLIED  -- Default: no change --
  803.                    dtdorlpd -- Active DTD or LPDs for SGML document entity.
  804.                                Base DTD if unspecified and docorsub changed; no
  805.                                change if unspecified and docorsub unchanged. --
  806.                             -- lextype(DTD|LPD+) --
  807.                             NAMES    #IMPLIED  -- Default: unchanged or base --
  808. >
  809.  
  810.                     <!-- Coordinate Locations -->          <!--08.4       56-->
  811.                     <!-- Data Location Address -->         <!--08.4.1     57-->
  812. <!element dataloc  -- Locates string and token data objects in data --
  813.                    -- Constraint: dimlists are concatenated into one list --
  814.                    - O      (dimlist*) >
  815. <!attlist dataloc  HyTime   NAME     dataloc
  816.                    id       ID       #REQUIRED
  817.                    quantum  -- Data quantum: bit combination or token --
  818.                             (str|norm|word|name|sint|date|time|utc) str
  819.                    catsrc   -- Concatenate multiple source objects into a
  820.                                single object before applying dimlist to it --
  821.                             (catsrc|catsrcsp|nocatsrc) nocatsrc
  822.                    catres   -- Concatenate results of applying dimlist, in
  823.                                the order of the dimlist --
  824.                             (catres|catressp|nocatres) nocatres
  825.                             -- overrun attributes --
  826.                             -- locsrc attributes --
  827.                             -- multloc attributes --
  828.                             -- spanloc attributes -->
  829.  
  830.                        <!-- Node Locations -->             <!--08.4.2     58-->
  831.                  <!-- Tree Combination Attributes -->      <!--08.4.2.3   60-->
  832. <!attlist treecom           -- use: treeloc pathloc --
  833.                    treecom  -- Combine multiple source trees --
  834.                             (treecom|ntreecom) ntreecom
  835. >
  836.  
  837.                     <!-- Tree Location Address -->         <!--08.4.2.4   60-->
  838. <!element treeloc  -- Locates nodes in a tree by classical method --
  839.                    -- Constraint: marklists are merged into a single list that
  840.                       contains 1st markers only; implied marker2 is 1 --
  841.                    - O      (marklist*) >
  842. <!attlist treeloc  HyTime   NAME     treeloc
  843.                    id       ID       #REQUIRED
  844.                             -- overrun attributes --
  845.                             -- treecom attributes --
  846.                             -- locsrc attributes --
  847.                             -- multloc attributes --
  848.                             -- spanloc attributes -->
  849.  
  850.                     <!-- Path Location Address -->         <!--08.4.2.5   61-->
  851. <!element pathloc  -- Locates nodes in a tree viewed as a path list --
  852.                    -- Constraint: dimlists are merged into a single list that
  853.                       resolves to pairs of dimspecs --
  854.                    - O      (dimlist*) >
  855. <!attlist pathloc  HyTime   NAME     pathloc
  856.                    id       ID       #REQUIRED
  857.                             -- overrun attributes --
  858.                             -- treecom attributes --
  859.                             -- locsrc attributes --
  860.                             -- multloc attributes --
  861.                             -- spanloc attributes -->
  862.  
  863.                     <!-- List Location Address -->         <!--08.4.2.6   62-->
  864. <!element listloc  -- Locates nodes in a node list viewed as a list --
  865.                    - O      (dimlist*) >
  866. <!attlist listloc  HyTime   NAME     listloc
  867.                    id       ID       #REQUIRED
  868.                             -- overrun attributes --
  869.                             -- locsrc attributes --
  870.                             -- multloc attributes --
  871.                             -- spanloc attributes -->
  872.  
  873.                   <!-- Relative Location Address -->       <!--08.4.2.7   63-->
  874. <!element relloc   -- Locates nodes in a tree relative to a starting node --
  875.                    -- Constraint: dimlists are merged into a single list that
  876.                       resolves to pairs of dimspecs --
  877.                    - O      (dimlist*) >
  878. <!attlist relloc   HyTime   NAME     relloc
  879.                    id       ID       #REQUIRED
  880.                    root     -- Root of tree --
  881.                             -- Constraint: 1 per starting node or 1 for all --
  882.                             IDREFS   #IMPLIED  -- Default: document root of
  883.                                                            each starting node --
  884.                    relation -- Relationship to starting node --
  885.                             -- Constraint: des requires "pathloc" option --
  886.                             (anc|esib|ysib|des|parent|children) parent
  887.                             -- overrun attributes --
  888.                             -- locsrc attributes --
  889.                             -- multloc attributes --
  890.                             -- spanloc attributes -->
  891.  
  892.                       <!-- Semantic Locations -->          <!--08.5       64-->
  893.  
  894.                   <!-- Property Location Address -->       <!--08.5.1     64-->
  895. <!element proploc  -- Locates attribute or other property --
  896.                    - O      (QPN|#PCDATA) -- lextype(QPN) -->
  897. <!attlist proploc  HyTime   NAME     proploc
  898.                    id       ID       #REQUIRED
  899.                    joint    -- Joint property of relationship of
  900.                                members of multiple locsrc? --
  901.                             (joint|several) several
  902.                    apropsrc -- Use additional property source? --
  903.                             (apropsrc|solesrc) solesrc
  904.                    notprop  -- If not a property of locsrc or apropsrc? --
  905.                             (error|empty|ignore) ignore
  906.                             -- locsrc attributes --
  907.                             -- multloc attributes --
  908. >
  909.  
  910.                     <!-- Notation-specific Location Address -->
  911.                                                             <!--08.5.2    64-->
  912. <!element notloc   -- Locates an arbitrary portion of data in terms of its
  913.                       data content notation (e.g., internal label,
  914.                       3rd polygon in graphics notation).
  915.                       Query that returns object, rather than HyTime address --
  916.                    - O      (%HyBrid;)* >
  917. <!attlist notloc   HyTime   NAME     notloc
  918.                    id       ID       #REQUIRED
  919.                             -- query attributes --
  920.                             -- function attributes --
  921.                             -- multloc attributes --
  922. >
  923.  
  924.                <!-- Bibliographic Location Address -->     <!--08.5.3     65-->
  925. <!element bibloc   -- Textual bibliographic reference to real object --
  926.                    -- Represents an address that is processable only as data --
  927.                    - O      (%HyBrid;)* >
  928. <!attlist bibloc   HyTime   NAME     bibloc
  929.                    id       ID       #REQUIRED
  930.                             -- query attributes --
  931.                             -- function attributes --
  932. >
  933.  
  934.                           <!-- Querying -->                <!--08.7       66-->
  935.                       <!-- Query Attributes -->            <!--08.7.1     67-->
  936. <!attlist query             -- use: nmquery mrkquery notloc bibloc --
  937.                    qdomain  -- Domain of the query --
  938.                             -- For some query notations, domain is inherent
  939.                                and this attribute will be ignored. --
  940.                             -- Constraint: No HyTime reftype constraints --
  941.                             IDREFS   #IMPLIED  -- Default: inherent in query --
  942.                    qcontext -- Semantic and parsing context for domain --
  943.                             -- reftype(HyBrid) --
  944.                             IDREF    #IMPLIED  -- Default: inherent in query --
  945. >
  946.  
  947.                        <!-- Name List Query -->            <!--08.7.2     68-->
  948. <!element nmquery  -- Query that returns a name list --
  949.                    -- Selects elements or data by semantic properties --
  950.                    -- Examples: DSSSL query; HyQ --
  951.                    O O      (%HyBrid;)* >
  952. <!attlist nmquery  HyTime   NAME     nmquery
  953.                    id       ID       #IMPLIED  -- Default: none --
  954.                             -- query attributes --
  955.                             -- function attributes --
  956. >
  957.  
  958.                       <!-- Axis Marker Query -->           <!--08.7.3     68-->
  959. <!element mrkquery -- Axis marker query --
  960.                    -- Queries an ordered domain and returns axis markers
  961.                       of objects that satisfy query --
  962.                    -- Constraint: represents axis markers in form required
  963.                       by context: single marker, marker pair, etc. --
  964.                    O O      (%HyBrid;)* >
  965. <!attlist mrkquery HyTime   NAME     mrkquery
  966.                    id       ID       #IMPLIED  -- Default: none --
  967.                             -- query attributes --
  968.                             -- function attributes --
  969. >
  970.  
  971.                          <!-- HYPERLINKS -->               <!--09         69-->
  972.                       <!-- Independent Link -->            <!--09.2.1     72-->
  973. <!element ilink    -- Independent link --
  974.                    - O      (%HyBrid;)* >
  975. <!attlist ilink    HyTime   NAME     ilink
  976.                    id       ID       #IMPLIED  -- Default: none --
  977.                    anchrole -- Anchor roles --
  978.                             -- Constraint: one per anchor --
  979.                             -- lextype((NAME, s+, (RNI, "AGG")?),
  980.                                        (s+, NAME, s+, (RNI, "AGG")?)+) --
  981.                             CDATA    #FIXED in-DTD
  982.                    linkends -- Link ends --
  983.                             -- Constraint: one anchor per anchor role. If one
  984.                                is omitted, ilink element is first anchor. --
  985.                             -- Constraint: No HyTime reftype constraints,
  986.                                but application designers can constrain
  987.                                element types with reftype attribute --
  988.                             IDREF    #REQUIRED
  989.                    extra    -- External access traversal rule --
  990.                             -- Constraint: one per anchor or one for all --
  991.                             -- lextype(("E"|"I"|"A"|"N"|"P"),
  992.                                        (s+, ("E"|"I"|"A"|"N"|"P"))*) --
  993.                             NAMES    #IMPLIED -- Default: no HyTime traversal --
  994.                    intra    -- Internal access traversal rule --
  995.                             -- Constraint: one per anchor or one for all --
  996.                             -- lextype(("E"|"I"|"A"|"N"|"P"),
  997.                                        (s+, ("E"|"I"|"A"|"N"|"P"))*) --
  998.                             NAMES    #IMPLIED -- Default: no HyTime traversal --
  999.                    endterms -- Link end term information --
  1000.                             -- Constraint: one per anchor or one for all --
  1001.                             -- reftype(HyBrid) --
  1002.                             IDREFS   #IMPLIED  -- Default: none --
  1003.                    aggtrav  -- Traversal of agglink anchors: agg or members --
  1004.                             -- Constraint: one per anchor or one for all --
  1005.                             -- lextype(("AGG"|"MEM"|"COR"),
  1006.                                        (s+, ("AGG"|"MEM"|"COR"))*) --
  1007.                             NAMES    agg
  1008. >
  1009.  
  1010.                        <!-- Contextual Link -->            <!--09.2.2     74-->
  1011. <!element clink    -- Contextual link --
  1012.                    - O      (%HyBrid;)* >
  1013. <!attlist clink    HyTime   NAME     clink
  1014.                    id       ID       #IMPLIED  -- Default: none --
  1015.                    linkend  -- Link end --
  1016.                             -- Constraint: No HyTime reftype constraints,
  1017.                                but application designers can constrain
  1018.                                element types with reftype attribute --
  1019.                             IDREF    #REQUIRED
  1020. >
  1021.  
  1022.                          <!-- SCHEDULING -->               <!--10         75-->
  1023.                    <!-- Finite Coordinate Space -->        <!--10.2       76-->
  1024. <!element fcs      -- Finite coordinate space --
  1025.                    - O      (evsched|wand|baton)+ >
  1026. <!attlist fcs      HyTime   NAME     fcs
  1027.                    id       ID       #IMPLIED  -- Default: none --
  1028.                    fcsname  -- Name of semantic FCS described by the element --
  1029.                             NAME     #IMPLIED  -- Default: FCS is unnamed --
  1030.                    fcsmdu   -- SMU to MDU ratio that makes the MDU a
  1031.                                common denominator of HMUs for all schedules on
  1032.                                all axes of FCS in a given measurement domain.--
  1033.                             -- Constraint: SMU name and ratio for one or
  1034.                                more of the domains used in the FCS.  An SMU
  1035.                                name can occur only once. --
  1036.                             -- lextype((NAME,s+,frac),(s+,NAME,s+,frac)*) --
  1037.                             CDATA    #FIXED "" -- Default: equal to docmdu --
  1038.                    axisdefs -- Definitions of FCS axes --
  1039.                             -- Constraint: GIs of axis element types --
  1040.                             -- lextype(GIL) --
  1041.                             NAMES    #FIXED in-DTD
  1042. >
  1043.                        <!-- Axis Definition -->            <!--10.2       76-->
  1044. <!element axis     -- Axis definition for a finite coordinate space --
  1045.                    - O      (%HyBrid;)* >
  1046. <!attlist axis     HyTime   NAME     axis
  1047.                    id       ID       #IMPLIED  -- Default: none --
  1048.                    axismeas -- Measurement domain (SMU) of this axis --
  1049.                             -- lextype(NOTATION) --
  1050.                             CDATA    #FIXED in-DTD
  1051.                    axismdu  -- SMU to MDU ratio that makes the MDU a
  1052.                                common denominator of HMUs for all schedules on
  1053.                                this axis in all FCS elements that use it.--
  1054.                             -- lextype(frac) --
  1055.                             CDATA    #FIXED "" -- Default: equal to fcsmdu --
  1056.                    axisdim  -- Dimension of this axis in MDUs --
  1057.                             -- lextype(number) --
  1058.                             CDATA    #FIXED in-DTD
  1059.                             -- calendar attributes --
  1060. >
  1061.  
  1062.                           <!-- Schedule -->                <!--10.3       77-->
  1063. <!attlist sched             -- use: evsched baton wand --
  1064.                    axisord  -- Order of axes in schedule --
  1065.                             -- Constraint: GIs of axis element types. Omitted
  1066.                                GI means all events in schedule fully occupy
  1067.                                the omitted axis --
  1068.                             -- lextype(GIL) --
  1069.                             CDATA    #FIXED "" -- Default: axisdefs in FCS --
  1070.                    apporder -- Order of schedule elements is significant to
  1071.                                the application and must be preserved --
  1072.                             (order|disorder) order
  1073.                    sorted   -- Representation of schedule elements is sorted
  1074.                                by order of position on axes of schedule --
  1075.                             (sorted|unsorted) unsorted
  1076. >
  1077.  
  1078.                        <!-- Event Schedule -->             <!--10.4       77-->
  1079. <!element evsched  -- Event schedule --
  1080.                    - O      (evgrp|event)* >
  1081. <!attlist evsched  HyTime   NAME     evsched
  1082.                    id       ID       #IMPLIED  -- Default: none --
  1083.                             -- sched attributes --
  1084.                             -- schdmeas attributes --
  1085.                             -- overrun attributes --
  1086.                             -- pls2gran attributes --
  1087. >
  1088.  
  1089.                          <!-- Event Group -->              <!--10.4.1     78-->
  1090. <!element evgrp    -- Event group --
  1091.                    - O      (evgrp|event)+ >
  1092. <!attlist evgrp    HyTime   NAME     evgrp
  1093.                    id       ID       #IMPLIED  -- Default: none --
  1094.                    grpscope -- Group scope (nominal extent of group) --
  1095.                             -- For each axis, the dimension is the lowest first
  1096.                                quantum of any group member through the highest
  1097.                                last quantum of any group member on that axis.
  1098.                                All of a member's extents are included. --
  1099.                             -- reftype(extent) --
  1100.                             IDREF    #IMPLIED  -- Default: to be calculated --
  1101.                    grpdex   -- Group derived extent specification --
  1102.                             -- Use for resizing, rearrangement, repetition.
  1103.                                Group members are given the derived extents.
  1104.                                If nominal extent is also wanted, it must be
  1105.                                specified as one of the derived extents. --
  1106.                             -- Constraint: multiple references concatenated --
  1107.                             -- reftype(extlist) --
  1108.                             IDREFS   #IMPLIED  -- Default: no derivation --
  1109.                             -- pls2gran attributes --
  1110. >
  1111.  
  1112.                             <!-- Event -->                 <!--10.4.2     79-->
  1113. <!element event    -- Event --
  1114.                    -- Object could include loc addresses to identify portions --
  1115.                    - O      (accanch|%HyBrid;)* >
  1116. <!attlist event    HyTime   NAME     event
  1117.                    id       ID       #IMPLIED  -- Default: none --
  1118.                    exrecon  -- Extent reconciliation rule if object won't fit --
  1119.                             -- reftype(exrecon) --
  1120.                             IDREF    #IMPLIED  -- Default: none --
  1121.                             -- exspec attributes --
  1122.                             -- pls2gran attributes --
  1123. >
  1124.  
  1125.                            <!-- Pulses -->                 <!--10.4.3     80-->
  1126. <!attlist pls2gran          -- use: evsched evgrp event --
  1127.                    pls2gran -- Pulse to granule ratio for each axis --
  1128.                             -- Constraint: 1 ratio per axis, or 1 for all --
  1129.                             -- lextype(fracs) --
  1130.                             NUMBERS  "1 1"
  1131. >
  1132.  
  1133.                       <!-- Malleable Object -->            <!--10.5.2     81-->
  1134. <!element mallobj  -- Malleable object --
  1135.                    - O      (%HyBrid;)* >
  1136. <!attlist mallobj  HyTime   NAME     mallobj
  1137.                    id       ID       #IMPLIED  -- Default: none --
  1138.                    effect   -- Effect created by object --
  1139.                             (pause|hold|wallpapr) pause
  1140. >
  1141.  
  1142.                     <!-- Accessed Anchor List -->          <!--10.5.3     82-->
  1143. <!element accanch  -- Accessed anchor list --
  1144.                    -- Constraint: if empty, all anchors and link end terms of
  1145.                       all links, when accessed, are the object of this event if
  1146.                       they are not included in another accessed anchor list. --
  1147.                    - O      (acctype|acclink)* >
  1148. <!attlist accanch  HyTime   NAME     accanch
  1149. >
  1150. <!attlist accend            -- use: acctype acclink --
  1151.                    accrole  -- Anchor roles corresponding to link ends --
  1152.                             -- Constraint: names of anchor roles --
  1153.                             NAMES    #IMPLIED  -- Default: all link ends --
  1154.                    accend   -- For accessed link end, show ENDTERM or ANCHOR? --
  1155.                             (endterm|anchor) anchor
  1156. >
  1157. <!element acctype  -- Accessed link element types --
  1158.                    - O      (%HyBrid;)* >
  1159. <!attlist acctype  HyTime   NAME     acctype
  1160.                    linktype -- Element types of link elements --
  1161.                             -- Constraint: GIs of link element types --
  1162.                             -- lextype(GI) --
  1163.                             NAMES    #REQUIRED
  1164.                             -- accend attributes --
  1165. >
  1166. <!element acclink  -- Accessed link element --
  1167.                    - O      (%HyBrid;)* >
  1168. <!attlist acclink  HyTime   NAME     acclink
  1169.                    linkid   -- Link element --
  1170.                             -- Constraint: "locs" must be agglink or spanlink --
  1171.                             -- reftype(ilink|clink|nameloc|dataloc|treeloc
  1172.                                |pathloc|listloc|relloc|proploc|notloc|fcsloc) --
  1173.                             IDREF    #REQUIRED
  1174.                             -- accend attributes --
  1175. >
  1176.  
  1177.                <!-- Extent Reconciliation Strategy -->     <!--10.6       83-->
  1178. <!element exrecon  -- Reconciliation strategy if object won't fit extent --
  1179.                    - O      (%HyBrid;)* >
  1180. <!attlist exrecon  HyTime   NAME     exrecon
  1181.                    id       ID       #REQUIRED
  1182.                    altrecon -- Alternative reconciliation strategy to try
  1183.                                for least objectionable fit --
  1184.                             -- reftype(exrecon) --
  1185.                             IDREF    #IMPLIED  -- Default: no more to try --
  1186.                    altcrit  -- Criteria for deciding whether to use altrecon --
  1187.                             -- reftype(HyBrid) --
  1188.                             IDREF    #IMPLIED  -- Default: none --
  1189.                    replace  -- Replacement object (e.g., malleable or error) --
  1190.                             -- Normally omitted for 1st exrecon in chain --
  1191.                             -- reftype(event) --
  1192.                             IDREF    #IMPLIED  -- Default: don't replace --
  1193.                    align    -- Align object (before vamping) with event --
  1194.                             -- Constraint: one F|C|L or snum pair per axis,
  1195.                                or one for all --
  1196.                             -- lextype(("F"|"C"|"L"|(snum, s+, snum))+) --
  1197.                             CDATA    C
  1198.                    vamp     -- Repeat undersize object in specified axis
  1199.                                and optionally crop the excess. --
  1200.                             -- VAMPCROP repeats 0 or more times until it
  1201.                                overshoots, then crops the excess. --
  1202.                             -- VAMPFILL repeats 0 or more times until it
  1203.                                can go no further without overshooting, then
  1204.                                fills the excess with filler. --
  1205.                             -- NOVAMP doesn't repeat object but fills on
  1206.                                undershot axes and crops on overshot axes. --
  1207.                             -- Constraint: one keyword per axis or one for all--
  1208.                             -- lextype(("VAMPCROP"|"VAMPFILL"|"NOVAMP"),
  1209.                                   (s+, ("VAMPCROP"|"VAMPFILL"|"NOVAMP"))*) --
  1210.                             NAMES    novamp
  1211.                    filler   -- Malleable object to fill excess extent --
  1212.                             -- reftype(mallobj) --
  1213.                             IDREF    #IMPLIED  -- Default: pause --
  1214. >
  1215.  
  1216.               <!-- Finite Coordinate Space Location -->    <!--10.7       85-->
  1217. <!element fcsloc   -- Imposes a HyTime FCS onto data so that a location
  1218.                       within it can be defined by HyTime extents --
  1219.                    -- Constraint: extlists are concatenated into one list
  1220.                       of extents, each in impfcs order in MDUs --
  1221.                    - O      (extlist*) >
  1222. <!attlist fcsloc   HyTime   NAME     fcsloc
  1223.                    id       ID       #REQUIRED
  1224.                    impfcs   -- Type of FCS imposed on this data --
  1225.                             -- lextype(GI) --
  1226.                             NAME     #REQUIRED
  1227.                             -- overrun attributes --
  1228.                             -- locsrc attributes --
  1229.                             -- multloc attributes --
  1230.                             -- spanloc attributes -->
  1231.  
  1232.                           <!-- Calendar -->                <!--10.8       86-->
  1233. <!attlist calendar          -- use: axis --
  1234.                    calendar -- Synchronizes axis to absolute date and time by
  1235.                                specifying date/time of first quantum --
  1236.                             -- Constraint: only if axismeas is SIsecond --
  1237.                             -- reftype(calspec) --
  1238.                             -- lextype(IDREF, s+, ("GMT"|"UTC")) --
  1239.                             CDATA    #FIXED "" -- Default: not a calendar --
  1240. >
  1241.  
  1242.                    <!-- Calendar Specification -->         <!--10.8.1     86-->
  1243. <!element calspec  -- Calendar specification --
  1244.                    -- Constraint: omitted content elements are those of
  1245.                       previous specified event in this schedule. --
  1246.                    - O      (abstime | ((date | juldate), abstime?) ) >
  1247. <!attlist calspec  HyTime   NAME     calspec
  1248.                    id       ID       #IMPLIED  -- Default: none --
  1249. >
  1250.  
  1251.  
  1252.                     <!-- Date and Julian Date -->          <!--10.8.1.1   87-->
  1253. <!element date     -- Date --
  1254.                    -- Constraint: date is valid date in UTC year-month-day
  1255.                       format, except that "day" and "month-day" are also
  1256.                       accepted.  Year has 4 digits, month and day have two,
  1257.                       with high-order zeros used to maintain digit count. --
  1258.                    -- Omitted components are those of previous specified
  1259.                       event in this schedule. --
  1260.                    - O      (#PCDATA) -- lextype(char+) -->
  1261. <!attlist date     HyTime   NAME     date
  1262.                    era      -- Era: previous (BC/BCE/BP) or current (AD/CE) --
  1263.                             (bc|bce|bp|ad|ce) #CURRENT
  1264. >
  1265. <!element juldate  -- Julian date --
  1266.                    - O      (#PCDATA) -- lextype(snum) -->
  1267. <!attlist juldate  HyTime   NAME     juldate >
  1268.  
  1269.                         <!-- Absolute Time -->             <!--10.8.1.2   87-->
  1270. <!element abstime  -- Absolute time --
  1271.                    -- Constraint: time is valid 24-hr time in UTC
  1272.                       "hour:minute:second.decimal" format, except that
  1273.                       "minute", "hour:minute", and "hour:minute:second"
  1274.                       are also accepted.  Component values are: hour=00-23,
  1275.                       minute and second=00-59, and decimal=any number. --
  1276.                    -- Omitted components are those of previous specified
  1277.                       event in this schedule. --
  1278.                    - O      (#PCDATA) -- lextype(char+) -->
  1279. <!attlist abstime  HyTime   NAME     abstime
  1280.                    timeoff  -- Time offset for summertime or time zone --
  1281.                             -- List of applicable offsets --
  1282.                             -- reftype(timeoff) --
  1283.                             IDREFS   #IMPLIED  -- Default: local time --
  1284. >
  1285. <!element timeoff  -- Time offset for summertime or time zone --
  1286.                    -- Constraint: valid time zone offset in UTC "hour:minute"
  1287.                       format, preceded by hyphen for negative offset --
  1288.                    - O      (#PCDATA) -- lextype(char+) -->
  1289. <!attlist timeoff  HyTime   NAME     timeoff
  1290.                    id       ID       #REQUIRED
  1291.                    effdate  -- Date on which offset takes effect --
  1292.                             -- Constraint: UTC date format --
  1293.                             CDATA    #IMPLIED  -- Default: always in effect --
  1294. >
  1295.  
  1296.                           <!-- RENDITION -->               <!--11         89-->
  1297.                      <!-- Object Modification -->          <!--11.1       89-->
  1298.                    <!-- Wand and Modifier Rules -->        <!--11.1.1     90-->
  1299. <!element wandrule -- Wand rule --
  1300.                    - O      (%HyBrid;)* >
  1301. <!attlist wandrule HyTime   NAME     wandrule
  1302.                    evscheds -- Event schedules --
  1303.                             -- reftype(evsched) --
  1304.                             IDREFS   #REQUIRED
  1305.                    wand     -- Wand or wand patch --
  1306.                             -- Constraint: must be aligned with evscheds --
  1307.                             -- reftype(wand|wndpatch) --
  1308.                             IDREF    #REQUIRED
  1309. >
  1310. <!element modrule  -- Modifier rule --
  1311.                    - O      (%HyBrid;)* >
  1312. <!attlist modrule  HyTime   NAME     modrule
  1313.                    events   -- Events and event groups --
  1314.                             -- reftype(event|evgrp) --
  1315.                             IDREFS   #REQUIRED
  1316.                    modpatch -- Modifier or modifier patch --
  1317.                             -- reftype(HyBrid|modpatch) --
  1318.                             IDREF    #REQUIRED
  1319. >
  1320.  
  1321.                             <!-- Wand -->                  <!--11.1.2     90-->
  1322. <!element wand     -- Wand --
  1323.                    - O      (modscope+) >
  1324. <!attlist wand     HyTime   NAME     wand
  1325.                    id       ID       #REQUIRED
  1326.                             -- sched attributes --
  1327.                             -- schdmeas attributes --
  1328.                             -- overrun attributes --
  1329. >
  1330.  
  1331.                        <!-- Modifier Scope -->             <!--11.1.3     91-->
  1332. <!element modscope -- Modifier scope --
  1333.                    - O      (%HyBrid;)* >
  1334. <!attlist modscope HyTime   NAME     modscope
  1335.                    id       ID       #IMPLIED  -- Default: none --
  1336.                             -- exspec attributes --
  1337. >
  1338.  
  1339.                            <!-- Patches -->                <!--11.1.4     91-->
  1340. <!element wndpatch -- Wand patch --
  1341.                    -- Constraint: subset of SGML model group with IDREFs as
  1342.                       names and no occurrence indicators or OR connectors. --
  1343.                    -- reftype(wndpatch|wand) --
  1344.                    - O      (#PCDATA) -- ulextype(char*) -->
  1345. <!attlist wndpatch HyTime   NAME     wndpatch
  1346.                    id       ID       #REQUIRED >
  1347. <!element modpatch -- Modifier patch --
  1348.                    -- Constraint: subset of SGML model group with IDREFs as
  1349.                       names and no occurrence indicators or OR connectors. --
  1350.                    -- reftype(modpatch|HyBrid) --
  1351.                    - O      (#PCDATA) -- ulextype(char*) -->
  1352. <!attlist modpatch HyTime   NAME     modpatch
  1353.                    id       ID       #REQUIRED >
  1354.  
  1355.                       <!-- Event Projection -->            <!--11.2       92-->
  1356.                          <!-- Baton Rule -->               <!--11.2.2     93-->
  1357. <!element batrule  -- Baton rule --
  1358.                    - O      (%HyBrid;)* >
  1359. <!attlist batrule  HyTime   NAME     batrule
  1360.                    evscheds -- Event schedules --
  1361.                             -- reftype(evsched) --
  1362.                             IDREFS   #REQUIRED
  1363.                    baton    -- Baton --
  1364.                             -- Constraint: must be aligned with evscheds --
  1365.                             -- reftype(baton) --
  1366.                             IDREF    #REQUIRED
  1367.                    pevsched -- Projected event schedules --
  1368.                             -- Constraint: must be different FCS from baton --
  1369.                             -- reftype(evsched) --
  1370.                             IDREFS   #REQUIRED
  1371. >
  1372.  
  1373.                             <!-- Baton -->                 <!--11.2.3     94-->
  1374. <!element baton    -- Baton --
  1375.                    - O      (proscope+) >
  1376. <!attlist baton    HyTime   NAME     baton
  1377.                    id       ID       #REQUIRED
  1378.                             -- sched attributes --
  1379.                             -- schdmeas attributes --
  1380.                             -- overrun attributes --
  1381. >
  1382.  
  1383.                        <!-- Projector Scope -->            <!--11.2.3.1   95-->
  1384. <!element proscope -- Projector scope --
  1385.                    -- Defines the scope of an event projector
  1386.                       as an extent of the unprojected schedule --
  1387.                    - O      (projectr) >
  1388. <!attlist proscope HyTime   NAME     proscope
  1389.                    id       ID       #IMPLIED  -- Default: none --
  1390.                             -- exspec attributes --
  1391. >
  1392.  
  1393.                        <!-- Event Projector -->            <!--11.2.3.2   95-->
  1394. <!element projectr -- Event projector --
  1395.                    -- Defines extents in the projected schedule into which
  1396.                       events within the projector scope will be projected --
  1397.                    -- Constraint: extlists are concatenated into one list --
  1398.                    - O      (extlist+|profun|scaleref) >
  1399. <!attlist projectr HyTime   NAME     projectr
  1400.                    id       ID       #IMPLIED  -- Default: none --
  1401.                    strict   -- Strictness of interpretation: e.g., rubato --
  1402.                             -- lextype(words) --
  1403.                             CDATA    #IMPLIED  -- Default: strict projection --
  1404. >
  1405.  
  1406.                      <!-- Projection Function -->          <!--11.2.3.3   95-->
  1407. <!element profun   -- Projection function --
  1408.                    - O      (%HyBrid;)* >
  1409. <!attlist profun   HyTime   NAME     profun >
  1410.  
  1411.                       <!-- Scaling Reference -->           <!--11.2.3.4   96-->
  1412. <!element scaleref -- Scaling reference --
  1413.                    -- Instantaneous projection scaling at specified quantum
  1414.                       in each axis of aligned original or projected schedule --
  1415.                    -- Constraint: one dimref per axis of baton --
  1416.                    - O      (dimref+) >
  1417. <!attlist scaleref HyTime   NAME     scaleref >
  1418.  
  1419.                        <!-- Rendition Rule -->             <!--11.3       96-->
  1420. <!element rendrule -- Rendition rule --
  1421.                    - O      (rendrule|batrule|wandrule|modrule)+ >
  1422. <!attlist rendrule HyTime   NAME     rendrule
  1423.                    id       ID       #REQUIRED
  1424.                    apporder -- Order of rules in content is significant to
  1425.                                the application and must be preserved --
  1426.                             (order|disorder) order
  1427. >
  1428.  
  1429.           5. USEFUL ELEMENT TYPES, NOTATIONS, AND INSTANCES
  1430.  
  1431.            <!-- HyLex: HYTIME LEXICAL MODEL NOTATION -->   <!--A.1       102-->
  1432.                          <!-- Delimiters -->               <!--A.1.1.2   103-->
  1433. Role    String  Description
  1434. ====    ======  ===========
  1435. XESC    \       Escape
  1436. XGRPO   (       Group open
  1437. XGRPC   )       Group close
  1438. XLIT    "       Literal start or end
  1439. XLITA   '       Literal start or end (alternative)
  1440. XSEQ    ,       Sequence connector
  1441. XOR     |       Or connector
  1442. XDTGO   [       Alternative single-character pattern open
  1443. XDTGC   ]       Alternative single-character pattern close
  1444. XOPT    ?       Optional occurrence indicator
  1445. XREP    +       Required and repeatable
  1446. XOREP   *       Optional and repeatable
  1447. XMINUS  -       Negation and range
  1448. XRNI    #       Reserved name indicator
  1449.  
  1450.                      <!-- HyLex Element Type -->           <!--A.1.2     104-->
  1451.                     <!-- HyTime Lexical Model -->
  1452. <!NOTATION HyLex   PUBLIC
  1453.            "+//ISO/IEC 10744:1992//NOTATION HyTime Lexical Model Notation//EN" >
  1454. <!ELEMENT HyLex    -- HyTime lexical model --
  1455.                    - -      (#PCDATA) >
  1456. <!ATTLIST HyLex    HyTime   NAME     #FIXED lexmodel
  1457.                    notation -- Data content notation --
  1458.                             NAME     #FIXED HyLex
  1459.                    delims   -- Data content notation delimiter changes --
  1460.                             -- Constraint: names are delimiter role names --
  1461.                             -- Constraint: a given NAME can occur only once --
  1462.                             -- lextype( (NAME, s+, char*),
  1463.                                         (s+, NAME, s+, char*)* ) --
  1464.                             CDATA    #IMPLIED  -- Default: not changed --
  1465.                    ltn      -- Lexical type name --
  1466.                             NAME     #REQUIRED
  1467.                    lexord   -- Lexicographic ordering for comparisons --
  1468.                             -- reftype(lexord) --
  1469.                             -- lextype(IDREF|(RNI,"SGMLCASE")) --
  1470.                             CDATA    #IMPLIED  -- Default: character set order--
  1471.                    boundary -- Hit boundary constraint --
  1472.                             (sodeod|sodiec|isceod|isciec|inmodel) sodeod
  1473.                    qpnpsn   -- QPN property set names --
  1474.                             -- Constraint: searched in order listed --
  1475.                             -- lextype(NOTATION, (s+, NOTATION)*) --
  1476.                             NAMES    #IMPLIED  -- Default: standard sets --
  1477.                    qltnlmgi -- QLTN lexical model GIs --
  1478.                             -- Constraint: searched in order listed --
  1479.                             -- lextype(GIL) --
  1480.                             NAMES    #FIXED HyLex
  1481.                    norm     -- Normalization --
  1482.                             (norm|unorm) norm
  1483.                    wildmax  -- Maximum bit combinations in wildcard match --
  1484.                             NUMBER   512
  1485. >
  1486.  
  1487.                      <!-- Useful HyLex Types -->           <!--A.1.3     105-->
  1488. Public identifier:
  1489.      "ISO/IEC 10744:1992//TEXT Useful HyLex Lexical Types//EN"
  1490.  
  1491.                     <!-- Useful Lexical Types -->
  1492. <hylex  norm ltn=IDRN>    (IDREF | "#NULL")                                   </hylex>
  1493. <hylex  norm ltn=NAMES>   (NAME, (s+, NAME)*)                                 </hylex>
  1494. <hylex  norm ltn=GIL>     (GI, (s+, GI)*)                                     </hylex>
  1495. <hylex  norm ltn=IDR2>    (IDREF, s+, IDREF)                                  </hylex>
  1496. <hylex  norm ltn=IDR2l>   (IDR2, (s+, IDR2)*)                                 </hylex>
  1497. <hylex  norm ltn=ATTORCON>(ATTNAME|"#CONTENT")                                </hylex>
  1498. <hylex  norm ltn=numl>    (number, (s+, number)*)                             </hylex>
  1499. <hylex  norm ltn=frac>    (number, s+, number) <!--fraction (numerator 1st)--></hylex>
  1500. <hylex  norm ltn=fracs>   (frac, (s+, frac)*)                                 </hylex>
  1501. <hylex  norm ltn=snum>    ([+-]?,number)       <!--signed number-->           </hylex>
  1502. <hylex  norm ltn=nzdigit> ([1-9])              <!--non-zero digit-->          </hylex>
  1503. <hylex  norm ltn=unzi>    (nzdigit,digit*)     <!--unsigned n-z integer-->    </hylex>
  1504. <hylex  norm ltn=snzi>    ([+-]?,unzi)         <!--signed n-z integer-->      </hylex>
  1505. <hylex  norm ltn=word>    (nmchar+)                                           </hylex>
  1506. <hylex  norm ltn=words>   (word, (s+, word)*)                                 </hylex>
  1507. <hylex unorm ltn=literal> ((LIT,#*,LIT) | (LITA,#*,LITA)) <!--SGML literal--> </hylex>
  1508.  
  1509.              <!-- String Forms of Architectural Forms -->
  1510. <hylex ltn=qltn>    ((LMGI,PLUS)?,LTN)                                  </hylex>
  1511. <hylex ltn=qpn>     (((PSN,PLUS)?,(PN,(DSO,(QPN|QLTN|word|literal),DSC)?)),
  1512.           (NET,((PSN,PLUS)?,(PN,(DSO,(QPN|QLTN|word|literal),DSC)?)))*) </hylex>
  1513. <hylex ltn=arg>     (PERO,nzdigit,(digit, digit?)?)                     </hylex>
  1514.  
  1515.                 <!-- HyTime PROPERTY DEFINITION -->        <!--A.2       106-->
  1516. <!ELEMENT HyPD     -- HyTime Property Definition --
  1517.                    - O      (#PCDATA) >
  1518. <!ATTLIST HyPD     HyTime   NAME     #FIXED propdef
  1519.                    pn       -- Property name --
  1520.                             -- Constraint: must be unique in property set --
  1521.                             NAME     #REQUIRED
  1522.                    psn      -- Property set name --
  1523.                             -- lextype(NOTATION) --
  1524.                             NAME     #REQUIRED
  1525.                    lex      -- Lexical type of property if not inherent --
  1526.                             -- lextype(qltn|qpn) --
  1527.                             CDATA    #IMPLIED
  1528.                    inherent -- Source of inherent property --
  1529.                             -- lextype(NOTATION) --
  1530.                             (SGML|HyTime) #IMPLIED -- Default: not inherent --
  1531.                    dspec    -- Definition of specifier for property --
  1532.                             -- lextype(qpn|qltn) --
  1533.                             CDATA    #IMPLIED
  1534.                    deforsyn -- Definition or synonym? --
  1535.                             (def|syn) def
  1536.                    qpnpsn   -- QPN property set names --
  1537.                             -- Constraint: searched in order listed --
  1538.                             -- lextype(NOTATION, (s+, NOTATION)*) --
  1539.                             NAMES    #IMPLIED  -- Default: standard sets --
  1540.                    qltnlmgi -- QLTN lexical model GIs --
  1541.                             -- Constraint: searched in order listed --
  1542.                             -- lextype(GIL) --
  1543.                             NAMES    #IMPLIED  -- Default: none used --
  1544. >
  1545.  
  1546.                     <!-- Useful property sets -->          <!--A.2.1     107-->
  1547. <!NOTATION SGML     PUBLIC "+//ISO 8879:1986//NOTATION
  1548.                            Standard Generalized Markup Language//EN">
  1549. <!NOTATION HyTime   PUBLIC "+//ISO/IEC 10744:1992//NOTATION
  1550.                            Hypermedia/Time-based Structuring Language//EN">
  1551.  
  1552.                   <!-- SGML lexical properties -->         <!--A.2.1.1   107-->
  1553.                <!-- HTlex1: SGML character classes -->     <!--A.2.1.1.1 107-->
  1554. <!NOTATION HTlex1   PUBLIC
  1555.   "+//ISO/IEC 10744:1992//NOTATION HTlex1::SGML character classes//EN">
  1556.  
  1557.               <!-- Abstract Syntax Character Classes -->
  1558. <HyPD psn=HTlex1 SGML pn=digit>
  1559. <HyPD psn=HTlex1 SGML pn=lcletter>
  1560. <HyPD psn=HTlex1 SGML pn=special>
  1561. <HyPD psn=HTlex1 SGML pn=ucletter>
  1562.  
  1563.               <!-- Concrete Syntax Character Classes -->
  1564. <HyPD psn=HTlex1 SGML pn=datachar>
  1565. <HyPD psn=HTlex1 SGML pn=delmchar>
  1566. <HyPD psn=HTlex1 SGML pn=funchar>
  1567. <HyPD psn=HTlex1 SGML pn=lcnmchar>
  1568. <HyPD psn=HTlex1 SGML pn=lcnmstrt>
  1569. <HyPD psn=HTlex1 SGML pn=msichar>
  1570. <HyPD psn=HTlex1 SGML pn=msochar>
  1571. <HyPD psn=HTlex1 SGML pn=msschar>
  1572. <HyPD psn=HTlex1 SGML pn=re>
  1573. <HyPD psn=HTlex1 SGML pn=rs>
  1574. <HyPD psn=HTlex1 SGML pn=sepchar>
  1575. <HyPD psn=HTlex1 SGML pn=space>
  1576. <HyPD psn=HTlex1 SGML pn=ucnmchar>
  1577. <HyPD psn=HTlex1 SGML pn=ucnmstrt>
  1578.  
  1579.      <!-- Syntactic Variables Derived From Character Classes -->
  1580. <HyPD psn=HTlex1 SGML pn=s>           <!--s  ("white space") separator-->
  1581. <HyPD psn=HTlex1 SGML pn=fnch>        <!--function character-->
  1582. <HyPD psn=HTlex1 SGML pn=nmsch>       <!--name start character-->
  1583. <HyPD psn=HTlex1 SGML pn=nmchar>      <!--name character-->
  1584. <HyPD psn=HTlex1 SGML pn=muchar>      <!--markup character-->
  1585. <HyPD psn=HTlex1 SGML pn=char>        <!--SGML character-->
  1586.  
  1587.              <!-- HTlex2: SGML delimiter role names -->    <!--A.2.1.1.2 108-->
  1588. <!NOTATION HTlex2   PUBLIC
  1589.   "+//ISO/IEC 10744:1992//NOTATION HTlex2::SGML delimiter roles//EN">
  1590.  
  1591. <HyPD psn=HTlex2 SGML pn=AND>
  1592. <HyPD psn=HTlex2 SGML pn=COM>
  1593. <HyPD psn=HTlex2 SGML pn=CRO>
  1594. <HyPD psn=HTlex2 SGML pn=DSC>
  1595. <HyPD psn=HTlex2 SGML pn=DSO>
  1596. <HyPD psn=HTlex2 SGML pn=DTGC>
  1597. <HyPD psn=HTlex2 SGML pn=DTGO>
  1598. <HyPD psn=HTlex2 SGML pn=ERO>
  1599. <HyPD psn=HTlex2 SGML pn=ETAGO>
  1600. <HyPD psn=HTlex2 SGML pn=GRPC>
  1601. <HyPD psn=HTlex2 SGML pn=GRPO>
  1602. <HyPD psn=HTlex2 SGML pn=LIT>
  1603. <HyPD psn=HTlex2 SGML pn=LITA>
  1604. <HyPD psn=HTlex2 SGML pn=MDC>
  1605. <HyPD psn=HTlex2 SGML pn=MDO>
  1606. <HyPD psn=HTlex2 SGML pn=MINUS>
  1607. <HyPD psn=HTlex2 SGML pn=MSC>
  1608. <HyPD psn=HTlex2 SGML pn=NET>
  1609. <HyPD psn=HTlex2 SGML pn=OPT>
  1610. <HyPD psn=HTlex2 SGML pn=OR>
  1611. <HyPD psn=HTlex2 SGML pn=PERO>
  1612. <HyPD psn=HTlex2 SGML pn=PIC>
  1613. <HyPD psn=HTlex2 SGML pn=PIO>
  1614. <HyPD psn=HTlex2 SGML pn=PLUS>
  1615. <HyPD psn=HTlex2 SGML pn=REFC>
  1616. <HyPD psn=HTlex2 SGML pn=REP>
  1617. <HyPD psn=HTlex2 SGML pn=RNI>
  1618. <HyPD psn=HTlex2 SGML pn=SEQ>
  1619. <HyPD psn=HTlex2 SGML pn=SHORTREF>
  1620. <HyPD psn=HTlex2 SGML pn=STAGO>
  1621. <HyPD psn=HTlex2 SGML pn=TAGC>
  1622. <HyPD psn=HTlex2 SGML pn=VI>
  1623.  
  1624.             <!-- SGML and HyTime semantic properties -->   <!--A.2.1.2   109-->
  1625.                <!-- HTsem1: SGML basic constructs -->      <!--A.2.1.2.1 109-->
  1626. <!NOTATION HTsem1   PUBLIC
  1627.   "+//ISO/IEC 10744:1992//NOTATION HTsem1::SGML basic constructs//EN">
  1628.  
  1629.          <!-- Declared Value Prescriptions of Attributes -->
  1630. <HyPD psn=HTsem1 SGML pn=cdata>character data</HyPD>
  1631. <HyPD psn=HTsem1 SGML pn=ENTITY>general entity name</HyPD>
  1632. <HyPD psn=HTsem1 SGML pn=ENTITIES>general entity name list</HyPD>
  1633. <HyPD psn=HTsem1 SGML pn=ID>id value</HyPD>
  1634. <HyPD psn=HTsem1 SGML pn=IDREF>id reference value</HyPD>
  1635. <HyPD psn=HTsem1 SGML pn=IDREFS>id reference list</HyPD>
  1636. <HyPD psn=HTsem1 SGML pn=NAME>
  1637. <HyPD psn=HTsem1 SGML pn=NAMES>name list</HyPD>
  1638. <HyPD psn=HTsem1 SGML pn=NMTOKEN>name token</HyPD>
  1639. <HyPD psn=HTsem1 SGML pn=NMTOKENS>name token list</HyPD>
  1640. <HyPD psn=HTsem1 SGML pn=NOTATION>notation name</HyPD>
  1641. <HyPD psn=HTsem1 SGML pn=NUMBER>
  1642. <HyPD psn=HTsem1 SGML pn=NUMBERS>number list</HyPD>
  1643. <HyPD psn=HTsem1 SGML pn=NUTOKEN>number token</HyPD>
  1644. <HyPD psn=HTsem1 SGML pn=NUTOKENS>number token list</HyPD>
  1645.  
  1646.             <!-- Identifiers of Objects or Properties -->
  1647. <HyPD psn=HTsem1 SGML pn=ENAME>entity name</HyPD>
  1648. <HyPD psn=HTsem1 SGML pn=ATTNAME>attribute name</HyPD>
  1649. <HyPD psn=HTsem1 SGML pn=GI>generic identifier</HyPD>
  1650. <HyPD psn=HTsem1 SGML pn=CID>ID of current element</HyPD>
  1651.  
  1652.                    <!-- Properties of a Prolog -->
  1653. <HyPD psn=HTsem1 SGML pn=dtd>document type definition</HyPD>
  1654. <HyPD psn=HTsem1 SGML pn=lpd>link process definition</HyPD>
  1655. <HyPD psn=HTsem1 SGML pn=ASSGI>associated element type</HyPD>
  1656. <HyPD psn=HTsem1 SGML pn=ASSNOT>associated notation name</HyPD>
  1657. <HyPD psn=HTsem1 SGML pn=etype dspec=ENAME>entity type</HyPD>
  1658. <HyPD psn=HTsem1 SGML pn=attdefs dspec=ASSGI>attribute definition list</HyPD>
  1659. <HyPD psn=HTsem1 SGML pn=attdef dspec=ATTNAME>attribute definition</HyPD>
  1660. <HyPD psn=HTsem1 SGML pn=ATTDV dspec=ATTNAME>declared value</HyPD>
  1661. <HyPD psn=HTsem1 SGML pn=ATTDVNMT>name token in ATTDV name token group</HyPD>
  1662.  
  1663.           <!-- Properties of a Parsed Document Instance -->
  1664. <HyPD psn=HTsem1 SGML pn=ent dspec=ENAME>entity</HyPD>
  1665. <HyPD psn=HTsem1 syn  pn=enot>etype[ENAME]/notation</HyPD>
  1666. <HyPD psn=HTsem1 SGML pn=datatts dspec=ENAME>data attribute specification</HyPD>
  1667. <HyPD psn=HTsem1 SGML pn=elem dspec=ID>element</HyPD>
  1668. <HyPD psn=HTsem1 SGML pn=celem>current element</HyPD>
  1669. <HyPD psn=HTsem1 SGML pn=attspecs dspec=ID>attribute specification list</HyPD>
  1670. <HyPD psn=HTsem1 SGML pn=linkatts dspec=ID>link attribute specification</HyPD>
  1671. <HyPD psn=HTsem1 SGML pn=linkres dspec=ID>result element specification</HyPD>
  1672. <HyPD psn=HTsem1 SGML pn=attval dspec=ATTNAME>attribute value</HyPD>
  1673.  
  1674.                  <!-- HTsem2: HyTime constructs -->        <!--A.2.1.2.2 110-->
  1675. <!NOTATION HTsem2   PUBLIC
  1676.   "+//ISO/IEC 10744:1992//NOTATION HTsem2::HyTime basic constructs//EN">
  1677.  
  1678.             <!-- Identifiers of Objects or Properties -->
  1679. <HyPD psn=HTsem2 HyTime pn=LTN>lexical type name</HyPD>
  1680. <HyPD psn=HTsem2 HyTime pn=LMGI lex=GI>lexmodel element type</HyPD>
  1681. <HyPD psn=HTsem2 HyTime pn=PN>property name</HyPD>
  1682. <HyPD psn=HTsem2 HyTime pn=PSN>property set name</HyPD>
  1683. <HyPD psn=HTsem2 HyTime pn=spec>specifier of property</HyPD>
  1684. <HyPD psn=HTsem2 HyTime pn=FN>function name</HyPD>
  1685. <HyPD psn=HTsem2 HyTime pn=OCI>object class identifier</HyPD>
  1686. <HyPD psn=HTsem2 HyTime pn=PCOBJ>PTR to current object</HyPD>
  1687. <HyPD psn=HTsem2 HyTime pn=NLNAME>HyQ node list name</HyPD>
  1688. <HyPD psn=HTsem2 HyTime pn=REFTYPE>reference type</HyPD>
  1689. <HyPD psn=HTsem2 HyTime pn=LEXTYPE>lexical type</HyPD>
  1690.  
  1691.                <!-- Location Addressing Properties -->
  1692. <HyPD psn=HTsem2 HyTime pn=object dspec=PTR>object</HyPD>
  1693. <HyPD psn=HTsem2 HyTime pn=cobj>current object</HyPD>
  1694. <HyPD psn=HTsem2 HyTime pn=locsrc>location source of object</HyPD>
  1695. <HyPD psn=HTsem2 HyTime pn=cand>HyQ selector candidate</HyPD>
  1696. <HyPD psn=HTsem2 HyTime pn=DQ>dataloc data quantum</HyPD>
  1697. <HyPD psn=HTsem2 HyTime pn=pelement dspec=PTR>pseudo-element</HyPD>
  1698. <HyPD psn=HTsem2 HyTime pn=dataent>data entity</HyPD>
  1699. <HyPD psn=HTsem2 HyTime pn=dataobj dspec=PTR>data object</HyPD>
  1700. <HyPD psn=HTsem2 HyTime pn=elpelem dspec=PTR>element or pseudo-element</HyPD>
  1701. <HyPD psn=HTsem2 HyTime pn=NODETYPE>node type:
  1702.                         (element|pelement|dataent|dataobj)</HyPD>
  1703. <HyPD psn=HTsem2 HyTime pn=docroot>document root</HyPD>
  1704. <HyPD psn=HTsem2 HyTime pn=docpos>pathloc document position</HyPD>
  1705. <HyPD psn=HTsem2 HyTime pn=docpostl>treeloc document position</HyPD>
  1706. <HyPD psn=HTsem2 HyTime pn=datapos>data position</HyPD>
  1707. <HyPD psn=HTsem2 HyTime pn=apropsrc>additional property source</HyPD>
  1708.  
  1709.                    <!-- Hyperlinking Properties -->
  1710. <HyPD psn=HTsem2 HyTime pn=hylink dspec=PTR>ilink or clink element</HyPD>
  1711. <HyPD psn=HTsem2 HyTime pn=anchors>objects linked by a hylink</HyPD>
  1712. <HyPD psn=HTsem2 HyTime pn=ANCHROLE>anchor roles of anchors of hylink</HyPD>
  1713. <HyPD psn=HTsem2 HyTime pn=linkedby>hylinks that link an anchor</HyPD>
  1714. <HyPD psn=HTsem2 HyTime pn=linkedto>other anchors of linkedby</HyPD>
  1715. <HyPD psn=HTsem2 HyTime pn=LINKEDAS>role of anchor in hylink</HyPD>
  1716.  
  1717.                  <!-- HTsem3: Unparsed SGML text -->       <!--A.2.1.2.3 111-->
  1718. <!NOTATION HTsem3   PUBLIC
  1719.   "+//ISO/IEC 10744:1992//NOTATION HTsem3::Unparsed SGML text//EN">
  1720.  
  1721. <HyPD psn=HTsem3 SGML pn=unpelem dspec=ID>
  1722.                                     unparsed element (includes tags)</HyPD>
  1723. <HyPD psn=HTsem3 SGML pn=unpcontx>
  1724.                                     unparsed content (excludes tags)</HyPD>
  1725. <HyPD psn=HTsem3 syn  pn=unpcont dspec=ID>unpelem[ID]/unpcontx</HyPD>
  1726. <HyPD psn=HTsem3 SGML pn=tag     dspec=GI>start-tag</HyPD>
  1727. <HyPD psn=HTsem3 SGML pn=unpatt  dspec=ATTNAME>
  1728.                                     attribute value specification</HyPD>
  1729. <HyPD psn=HTsem3 SGML pn=KEYWORD>keyword parameter</HyPD>
  1730.  
  1731.                 <!-- HyQ: HYTIME QUERY NOTATION -->        <!--A.3       111-->
  1732.                    <!-- HyQ formal definition -->          <!--A.3.2     112-->
  1733.                           -- Conventions --
  1734. --           'UC'         Reserved name
  1735.              'Ulc('       Reserved operator name
  1736.              !lc          Useful LTN or PN of user-specified text
  1737.              @lc          Value of attribute defined elsewhere
  1738.              lc           Grammar non-terminal symbol
  1739.              ()?*+|       Meta-ops: grouping, opt, orep, rrep, or
  1740.              ''           Delimit meta-ops when used in real syntax
  1741.              two hyphens  Begin and end comments (as in SGML)
  1742. --
  1743.  
  1744.                            -- Delimiters --
  1745. --           Role    String   Description
  1746.              ====    ======   ===========
  1747.              QESC    \        Escape
  1748.              QGRPO   (        Group open
  1749.              QGRPC   )        Group close
  1750.              QLIT    "        Literal start or end
  1751.              QLITA   '        Literal start or end (alternative)
  1752. --
  1753.  
  1754. HyQ       -- The content of an element that uses the HyQ notation is a node
  1755.              list that comprises the body of a query.  A qdomain and args can
  1756.              be specified as attributes of the query element. --
  1757.           qbody
  1758.  
  1759.                               -- Query --                  <!--A.3.2.1   112-->
  1760. query     -- A query can be either a direct query or an indirect query --
  1761.           (dquery|iquery)
  1762. dquery    -- Direct query: the query body is specified as a direct argument
  1763.              of the query --
  1764.           'Query('qbody qdomain? args?')'
  1765. iquery    -- Indirect query: the query body is specified indirectly by
  1766.              reference to the fn attribute of another query element --
  1767.           'UseQ('@fn qdomain? args?')'
  1768. qbody     -- Query body --
  1769.           nl
  1770. qdomain   -- Query domain: node list whose objects are tested for inclusion
  1771.              in query result; defaults to DOMTREE if not specified. --
  1772.           -- Qdomain must be specified if the first arg is nl or oo. --
  1773.           nl
  1774. args      -- Query arguments --
  1775.           (node|nl)*
  1776.  
  1777.                              -- Nodes --                   <!--A.3.2.2   112-->
  1778. node      -- Node --
  1779.           -- !literal Delimited data
  1780.              @arg     Argument (conforms to HyFunk ltn=arg)
  1781.              CAND     The candidate currently under test in a select function.
  1782.                       CAND has no meaning elsewhere, but survives in nested
  1783.                       queries until stacked when a nested select function
  1784.                       is invoked --
  1785.           (!literal|'CAND'|@arg|oo|count)
  1786. oo        -- Object of: resolves IDREF to its object --
  1787.           -- Object must be valid in context in which oo occurs --
  1788.                                                                      8
  1789. count     -- Returns the number of quanta in an addressable range.
  1790.              The range is determined from a node list, all of whose nodes are
  1791.              data objects that have a common apropsrc (that is, all of the
  1792.              objects occur within the data of one other object).  The range
  1793.              extends from the first bit combination of the node that is first
  1794.              in the common containing object, to the last bit combination of
  1795.              the last node, inclusive. --
  1796.           'Count('nl @quantum?')'
  1797.  
  1798.                             -- Node List --                <!--A.3.2.3   113-->
  1799. nl        -- Node list --
  1800.          ('DOMTREE'|'DOMROOT'|assign|nlref|nlops|nldefs|oo|query)
  1801. assign    -- Assign name to a node list to allow reuse by nl reference
  1802.              Name is constant for scope of query body and its nested queries --
  1803.           'Assign('!name nl')'
  1804. nlref     -- Node list reference: resolves !name to its node list --
  1805.           -- !name   Name assigned to a node list definition to allow reuse
  1806.                      by reference; must be unique within query element.
  1807.                      A node list cannot be referenced within its own body --
  1808.           'Nlref('!name')'
  1809.  
  1810.                       -- Node List Operations --           <!--A.3.2.4   113-->
  1811. nlops     -- Node list operations (like set operations) --
  1812.           (select|create|union|inter|diff)
  1813. select    -- Selects resulting nodes by testing specified properties
  1814.              of members of a given node list.  The member under test is the
  1815.              "candidate" (CAND); it is included in resulting node list if
  1816.              the assertion returns "TRUE". --
  1817.           'Select('nl assert')'
  1818. create    -- Create node list: duplicates are not removed --
  1819.           -- Create() is the empty node list --
  1820.           -- Keyword 'Create' can be omitted --
  1821.           'Create'?'('(node|nl)*')'
  1822. union     -- Union (sum) of node lists: duplicates are removed --
  1823.           -- Result nl contains nodes that occur in at least one operand nl. --
  1824.           'Union('nl+')'
  1825. inter     -- Intersection (product) of node lists (common membership) --
  1826.           -- Result nl contains nodes that occur in every operand nl. --
  1827.           'Inter('nl+')'
  1828. diff      -- Difference between two node lists --
  1829.           -- Result nl contains nodes that occur in only the 1st operand nl. --
  1830.           'Diff('nl nl')'
  1831. sdiff     -- Symmetric difference of node lists (non-common membership) --
  1832.           -- Result nl contains nodes that occur in only one operand nl. --
  1833.           'Diff('nl+')'
  1834.  
  1835.                       -- Node List Definitions --          <!--A.3.2.5   113-->
  1836. nldefs    -- Node list definitions --
  1837.           (proploc|treeloc|pathloc|listloc|dataloc|hitloc|relloc)
  1838. proploc   -- Returns nl of data objects containing property of source nodes --
  1839.           -- Based on proploc element type form:
  1840.              (node|nl) Locsrc
  1841.              !qpn      Content
  1842.              @joint    Attribute
  1843.              @apropsrc Attribute
  1844.              @notprop  Attribute --
  1845.           'Proploc('(node|nl) !qpn @joint? @apropsrc? @notprop?')'
  1846. listloc   -- Pick nodes from list by position --
  1847.           -- Based on listloc element type form:
  1848.              nl        Locsrc
  1849.              mkpair*   Content
  1850.              @overrun  Attribute
  1851.              @set      Attribute --
  1852.           'Listloc('nl mkpair* @overrun? @set?')'
  1853. treeloc   -- Pick node from tree by position --
  1854.           -- Based on treeloc element type form:
  1855.              nl        Locsrc
  1856.              !snzi*    Content
  1857.              @overrun  Attribute
  1858.              @set      Attribute
  1859.              @treecom  Attribute --
  1860.           'Treeloc('nl !snzi* @overrun? @set? @treecom?')'
  1861. pathloc   -- Pick nodes from tree by paths --
  1862.           -- Based on pathloc element type form:
  1863.              nl        Locsrc
  1864.              mkpair*   Content
  1865.              @overrun  Attribute
  1866.              @set      Attribute
  1867.              @treecom  Attribute --
  1868.           'Pathloc('nl mkpair* @overrun? @set? @treecom?')'
  1869. relloc    -- Locates relatives by selection from addressable ranges --
  1870.           -- Based on relloc element type form:
  1871.              nl        Locsrc
  1872.              (node|nl) Root attribute
  1873.              @relation Attribute
  1874.              mkpair*   Content
  1875.              @overrun  Attribute
  1876.              @set      Attribute --
  1877.           'Relloc('nl (node|nl) @relation? mkpair* @overrun? @set?')'
  1878. dataloc   -- Selects portions of each node in the node list --
  1879.           -- Based on dataloc element type form:
  1880.              nl        Locsrc
  1881.              @quantum  Attribute
  1882.              @catsrc   Attribute
  1883.              @catres   Attribute
  1884.              mkpair*   Content
  1885.              @overrun  Attribute --
  1886.           'Dataloc('nl @quantum? @catsrc? @catres? mkpair* @overrun? ')'
  1887. mkpair    -- Pair of axis markers, interpreted as dimspec --
  1888.           (!snzi !snzi)
  1889. hitloc    -- Returns node list of data objects like that addressed by a dataloc
  1890.              whose content is a mrkquery whose qdomain is the dataloc locsrc --
  1891.           -- Each resulting node contains information about the location of
  1892.              the match (the "hit"), in marker pairs (like mrkquery). --
  1893.           match
  1894.  
  1895.                           -- Pattern Match --              <!--A.3.2.6   114-->
  1896. match     -- Pattern match: Returns a node list where each node contains
  1897.              one occurrence of the matching text (a "hit").  That is,
  1898.              one node is returned for each non-overlapping match
  1899.              in the text in each match domain node.   The number
  1900.              of matches per node has to be within hitrange. --
  1901.           -- Hit must be word quantum unless "bigmatch" option is supported. --
  1902.           -- !qltn     Qualified lexical type name (need not be HyLex)
  1903.              @lexord   Attribute (overrides @lexord on model element)
  1904.                        Defaults to character set order if "mixcase"
  1905.                        option is supported, otherwise to #SGMLCASE
  1906.                        Lexicographic reordering takes place prior to
  1907.                        quantization or other normalization.
  1908.              @boundary Attribute (defaults to "ISCIEC") --
  1909.           'Match('(node|nl) (hylex|!qltn|!literal)
  1910.                   'Oo('@lexord')'? @boundary? hitrange?')'
  1911. hylex     -- Local HyLex model --
  1912.           -- Based on HyLex element type:
  1913.              @HyLex    Content (lexical model in HyLex notation)
  1914.              @norm     Attribute
  1915.              @lexord   Attribute --
  1916.           'HyLex(('@hylex')' @norm? 'Oo('@lexord')'?')'
  1917. hitrange  -- Hit range: 1 <= MINHITS <= hits <= MAXHITS --
  1918.           -- Omitted MAXHITS means no upper limit --
  1919.           -- 1st unzi is MINHITS and 2nd is MAXHITS --
  1920.           (%unzi %unzi?)
  1921.  
  1922.                             -- Assertion --                <!--A.3.2.7   115-->
  1923. assert    -- Assertion: evaluates to "TRUE" or "FALSE" --
  1924.           ('TRUE'|'FALSE'|ah|compare|ordered|and|or|not|forall|exists)
  1925. ah        -- Assertion handler for user-defined assertion:
  1926.              The IDREF addresses an object that implements the assertion.
  1927.              The node list contains the operands. --
  1928.           -- Requires "uassert" option of location address module. --
  1929.           'Ah('!idref nl')'
  1930. forall    -- Evaluates to TRUE if the query returns nodes for every node in nl--
  1931.           -- The argument query is applied to each node, in its order in nl, by
  1932.              treating the node as the default qdomain of the argument query. --
  1933.           'Forall('nl query')'
  1934. exists    -- When a node list or match occurs where an assertion is expected,
  1935.              it evaluates to TRUE if non-empty, FALSE if empty. --
  1936.           (nl|match)
  1937.  
  1938.                            -- Comparison --                <!--A.3.2.8   115-->
  1939. compare   -- Comparison: tests ordering of operands --
  1940.           -- Operands in nl are data objects or literals --
  1941.           -- Comparisons are done in a way appropriate for the quantum. --
  1942.           -- Relations tested are TRUE if:
  1943.              EQ: all operands are equal
  1944.              NE: at least two operands are not equal
  1945.              LT: each operand is less than its successor
  1946.              LE: each operand is less or equal to its successor
  1947.              GT: each operand is greater than its successor
  1948.              GE: each operand is greater or equal to its successor
  1949.              SS: all operands are same size (same number of quanta)
  1950.              NS: at least two operands are not same size
  1951.              ST: each operand is smaller (shorter) than its successor
  1952.              SE: each operand is smaller (shorter) or equal to its successor
  1953.              BT: each operand is bigger (longer) than its successor
  1954.              BE: each operand is bigger (longer) or equal to its successor
  1955.              HO: each operand holds its successor (proper superstring)
  1956.              HE: each operand holds or equals its successor (superstring)
  1957.              IH: each operand is held in its successor (proper substring)
  1958.              IE: each operand is held in or equals its successor (substring) --
  1959.           -- Use CAND to operate on the candidate node of the active select. --
  1960.           ('EQ'|'NE'|'LT'|'LE'|'GT'|'GE'|'SS'|'NS'|'ST'|'SE'|'BT'|'BE'
  1961.           |'HO'|'HE'|'IH'|'IE')'('@quantum? 'Oo('@lexord')'? (node|nl)+')'
  1962. ordered   -- TRUE if all nodes are data objects that
  1963.              have a common apropsrc and are ordered within it --
  1964.           -- OVERLAP  TRUE if position of first bit combination of
  1965.                            first node is before next node's first.
  1966.              NOVERLAP TRUE if each node ends before next begins. --
  1967.           'Ordered('nl ('OVERLAP'|'NOVERLAP')?')'
  1968.  
  1969.                        -- Boolean Expressions --           <!--A.3.2.9   115-->
  1970. and       -- True if all its assertions are true --
  1971.           'And('assert+')'
  1972. or        -- True if any of its assertions are true --
  1973.           'Or('assert+')'
  1974. not       -- True if its assertion is false --
  1975.           'Not('assert')'
  1976.  
  1977.                       <!-- HyQ element type -->            <!--A.3.3     116-->
  1978.                       <!-- HyTime Query -->
  1979. <!NOTATION HyQ     PUBLIC
  1980.            "+//ISO/IEC 10744:1992//NOTATION HyTime Query Notation//EN" >
  1981. <!ELEMENT HyQ      -- HyTime query --
  1982.                    - O   (#PCDATA) >
  1983. <!ATTLIST HyQ      HyTime   (nmquery|mrkquery) nmquery
  1984.                    qdomain  -- Domain of the query --
  1985.                             -- Multiple is combined into a single tree --
  1986.                             -- Constraint: No HyTime reftype constraints --
  1987.                             IDREFS   #IMPLIED  -- Default: inherent in query --
  1988.                    notation -- Data content notation --
  1989.                             NAME     #FIXED HyQ
  1990.                    delims   -- Data content notation delimiter changes --
  1991.                             -- Constraint: names are delimiter role names --
  1992.                             -- Constraint: a given NAME can occur only once --
  1993.                             -- lextype( (NAME, s+, char*),
  1994.                                         (s+, NAME, s+, char*)* ) --
  1995.                             CDATA    #IMPLIED  -- Default: not changed --
  1996.                    fn       -- Query function name --
  1997.                             NAME     #IMPLIED
  1998.                    usefn    -- Fn of another function to which to pass
  1999.                                the args of this one --
  2000.                             NAME     #CONREF
  2001.                    args     -- Argument string passed to the function --
  2002.                             -- Constraint: 1-999 IDREFS --
  2003.                             -- Constraint: No HyTime reftype constraints --
  2004.                             IDREFS   #IMPLIED  -- Default: no arguments --
  2005.                    qpnpsn   -- QPN property set names --
  2006.                             -- Constraint: searched in order listed --
  2007.                             -- lextype(NOTATION, (s+, NOTATION)*) --
  2008.                             NAMES    #IMPLIED  -- Default: standard sets --
  2009.                    qltnlmgi -- QLTN lexical model GIs --
  2010.                             -- Constraint: searched in order listed --
  2011.                             -- lextype(GIL) --
  2012.                             NAMES    #IMPLIED  -- Default: none used --
  2013. >
  2014.  
  2015.                         <!-- HyQ examples -->              <!--A.3.4     116-->
  2016. <!-- 1. Locate all "equation" elements in a document -->
  2017. <HyQ qdomain=mydoc>
  2018.      Select(DOMTREE EQ(Proploc(CAND GI) "equation"))
  2019. </HyQ>
  2020.  
  2021. <!-- 2. Named query that can be reused with an argument to locate all
  2022.         elements of a specified element type. -->
  2023. <HyQ fn=hasgi>
  2024.      Select(DOMTREE EQ(Proploc(CAND GI) %1))
  2025. </HyQ>
  2026.  
  2027. <!-- 3. Locate the second "para" element in the document that occurs
  2028.         in a "body" element -->
  2029. <HyQ qdomain=mydoc>
  2030.      Listloc(
  2031.           Select(
  2032.                Pathloc(Select(DOMTREE EQ(Proploc(CAND GI) "body"))
  2033.                        1 -1 2 -1)
  2034.                EQ(Proploc(CAND GI) "para") )
  2035.           2 1 )
  2036. </HyQ>
  2037.  
  2038. <!-- 4. Same as Query 3, but it uses named Query 2 ("hasgi") -->
  2039. <HyQ qdomain=mydoc>
  2040.      Listloc(
  2041.           UseQ(hasgi
  2042.                Pathloc(UseQ(hasgi DOMTREE "body")
  2043.                        1 -1 2 -1)
  2044.                "para" )
  2045.           2 1 )
  2046. </HyQ>
  2047.  
  2048.                      <!-- MARKER FUNCTIONS -->             <!--A.4       117-->
  2049.       <!-- HyOp: HyTime single operator marker function --><!--A.4.1     117-->
  2050. <!ELEMENT HyOp     -- HyTime single operator marker function --
  2051.                    -- Represents (i.e., function returns) an axis marker --
  2052.                    -- For use when HyFunk is not available --
  2053.                    -- Constraint: marklists are concatenated into one list --
  2054.                    - O   (marklist*) -- Content is "meta" -->
  2055. <!ATTLIST HyOp     HyTime   NAME     #FIXED markfun
  2056.                    id       ID       #IMPLIED  -- Default: none --
  2057.                    opname   -- Operator name (same as HyFunk) --
  2058.               (sum|subt|mult|div|avg|max|min|abs|nabs|incr|decr|rand|mod)
  2059.                                      #REQUIRED
  2060. >
  2061.  
  2062.               <!-- HyFunk: HyTime function notation -->    <!--A.4.2     118-->
  2063.                 <!-- HyFunk syntax and semantics -->       <!--A.4.2.1   118-->
  2064. Delimiter roles:
  2065. Role    String  Description
  2066. ====    ======  ===========
  2067. FESC    \       Escape
  2068. FGRPO   (       Group open
  2069. FGRPC   )       Group close
  2070. FRNI    #       Reserved name indicator
  2071. FOP     @       Operator name indicator
  2072.  
  2073.             <!-- Syntax of HyFunk (in HyLex notation) -->
  2074. <hylex ltn=HyFunk>   (fun)                                     </hylex>
  2075. <hylex ltn=fun>      (startfun, s*, funbody?, s*, endfun)      </hylex>
  2076. <hylex ltn=startfun> ((mfn|("@",operator)), s*, ")")           </hylex>
  2077. <hylex ltn=funbody>  ((operand, (s+, operand)*))               </hylex>
  2078. <hylex ltn=endfun>   (")")                                     </hylex>
  2079. <hylex ltn=operand>  (fun|dimref|pdimref|snzi|arg)             </hylex>
  2080. <hylex ltn=dimref>   ("@",dimop,s*,"(",s*, refbody, s*,")")    </hylex>
  2081. <hylex ltn=refbody>  ((IDREF|("#SCOPE")), axisnext?)           </hylex>
  2082. <hylex ltn=axisnext> ((s+, GI)?, (s+, NUMBER)?)                </hylex>
  2083. <hylex ltn=pdimref>  ("@",pdimop,s*,"(",s*, prefbody, s*,")")  </hylex>
  2084. <hylex ltn=prefbody> (IDREF, s+, IDREF, axisnext?)             </hylex>
  2085. <hylex ltn=mfn>      (NAME)                                    </hylex>
  2086. <hylex ltn=dimop>    (NAME)                                    </hylex>
  2087. <hylex ltn=pdimop>   (NAME)                                    </hylex>
  2088. <hylex ltn=operator> (NAME)                                    </hylex>
  2089.  
  2090.                     <!-- HyFunk element type -->           <!--A.4.2.2   119-->
  2091.                     <!-- HyTime Function Notation -->
  2092. <!NOTATION HyFunk  PUBLIC
  2093.            "+//ISO/IEC 10744:1992//NOTATION HyTime Function Notation//EN" >
  2094. <!ELEMENT HyFunk   -- HyTime function notation expression --
  2095.                       -- Represents (i.e., function returns) an axis marker --
  2096.                    - O   (#PCDATA) >
  2097. <!ATTLIST HyFunk   HyTime   NAME     #FIXED markfun
  2098.                    notation -- Data content notation --
  2099.                             NAME     #FIXED HyFunk
  2100.                    delims   -- Data content notation delimiter changes --
  2101.                             -- Constraint: names are delimiter role names --
  2102.                             -- Constraint: a given NAME can occur only once --
  2103.                             -- lextype( (NAME, s+, char*),
  2104.                                         (s+, NAME, s+, char*)* ) --
  2105.                             CDATA    #IMPLIED  -- Default: not changed --
  2106.                    fn       -- Marker function name --
  2107.                             NAME     #IMPLIED
  2108.                    usefn    -- Fn of another function to which to pass
  2109.                                the args of this one --
  2110.                             NAME     #CONREF
  2111.                    args     -- Argument string passed to the function --
  2112.                             -- Constraint: 1-999 tokens, each being a snum
  2113.                                or an IDREF that ultimately locates a snum --
  2114.                             -- lextype((snum|IDREF), (s+, (snum|IDREF))*) --
  2115.                             CDATA    #IMPLIED  -- Default: no arguments --
  2116. >
  2117.  
  2118.           <!-- HyTime Measurement Unit ratio (HMUratio) --><!--A.4.2.3   120-->
  2119. <HyFunk fn=HMUratio>@div(@mult(%1 @qcnt(#SCOPE %3))%2)</HyFunk>
  2120.  
  2121. <!-- Example of HMUratio use in one dimension, with a ratio of 3/2 -->
  2122.      <projectr><extent><dimspec><marklist>
  2123.                   <HyFunk usefn=HMUratio args="3 2">
  2124.      </projectr>
  2125.  
  2126.                         <!-- MEASUREMENT -->               <!--A.5       120-->
  2127.              <!-- Useful Standard Measurement Units -->    <!--A.5.1     120-->
  2128.                       <!-- Measurement Units -->
  2129. <!NOTATION gquantum PUBLIC -- Generic Quantum --
  2130.            "+//ISO/IEC 10744//NOTATION Virtual Measurement Unit//EN" >
  2131. <!NOTATION SIsecond PUBLIC -- Time --
  2132.            "+//ISO/IEC 10744//NOTATION Systeme International second//EN" >
  2133. <!NOTATION SImeter  PUBLIC -- Length --
  2134.            "+//ISO/IEC 10744//NOTATION Systeme International meter//EN" >
  2135. <!NOTATION virtime  PUBLIC -- Virtual Time Unit --
  2136.            "+//ISO/IEC 10744//NOTATION Virtual Measurement Unit//EN" >
  2137. <!NOTATION virspace PUBLIC -- Virtual Space Unit --
  2138.            "+//ISO/IEC 10744//NOTATION Virtual Measurement Unit//EN" >
  2139.  
  2140.            <!-- Useful measurement domain definitions -->  <!--A.5.2     121-->
  2141. SGML formal public identifier:
  2142. "ISO/IEC 10744:1992//TEXT Useful Measurement Domain Definitions//EN"
  2143.  
  2144.                       <!-- Generic quantum -->             <!--A.5.2.1   121-->
  2145. <measure smu=gquantum>
  2146.   <granule gn=quantum         gd="      1      1 GQUANTUM">
  2147.   <granule gn=bit-combination gd="      1      1 quantum">
  2148.   <granule gn=token           gd="      1      1 quantum">
  2149.   <granule gn=node            gd="      1      1 quantum">
  2150.   <granule gn=cell            gd="      1      1 quantum">
  2151. </measure>
  2152.  
  2153.                         <!-- Virtual time -->              <!--A.5.2.2   121-->
  2154. <measure smu=virtime>
  2155.   <granule gn=vtu             gd="      1      1 VIRTIME">
  2156. </measure>
  2157.  
  2158.                        <!-- Virtual space -->              <!--A.5.2.3   121-->
  2159. <measure smu=virspace>
  2160.   <granule gn=vsu             gd="      1      1 VIRSPACE">
  2161. </measure>
  2162.  
  2163.                 <!-- Systeme International second -->      <!--A.5.2.4   122-->
  2164.  <measure smu=SIsecond>
  2165.   <granule gn=ysec            gd="      1   1000 zsec">
  2166.   <granule gn=zsec            gd="      1   1000 asec">
  2167.   <granule gn=asec            gd="      1   1000 fsec">
  2168.   <granule gn=fsec            gd="      1   1000 psec">
  2169.   <granule gn=psec            gd="      1   1000 nsec">
  2170.   <granule gn=nsec            gd="      1   1000 usec">
  2171.   <granule gn=usec            gd="      1   1000 msec">
  2172.   <granule gn=msec            gd="      1     10 csec">
  2173.   <granule gn=csec            gd="      1     10 dsec">
  2174.   <granule gn=dsec            gd="      1     10 second">
  2175.   <granule gn=SMPTE-50        gd="      1     50 second">
  2176.   <granule gn=V1250           gd="      1     50 second">
  2177.   <granule gn=NTSC            gd="      1     30 second">
  2178.   <granule gn=SMPTE-240M      gd="      1     30 second">
  2179.   <granule gn=SMPTE-30        gd="      1     30 second">
  2180.   <granule gn=SMPTE-30-drop   gd="    100   2997 second">
  2181.   <granule gn=SMPTE-25        gd="      1     25 second">
  2182.   <granule gn=PAL             gd="      1     25 second">
  2183.   <granule gn=SECAM           gd="      1     25 second">
  2184.   <granule gn=European        gd="      1     25 second">
  2185.   <granule gn=SMPTE-24        gd="      1     24 second">
  2186.   <granule gn=motion-picture  gd="      1     24 second">
  2187.   <granule gn=SMPTE-24-drop   gd="    100   2396 second">
  2188.   <granule gn=PC-tick         gd="     10    182 second">
  2189.   <granule gn=second          gd="      1      1 SISECOND">
  2190.   <granule gn=dasec           gd="     10      1 second">
  2191.   <granule gn=hsec            gd="     10      1 dasec">
  2192.   <granule gn=ksec            gd="     10      1 hsec">
  2193.   <granule gn=Msec            gd="   1000      1 ksec">
  2194.   <granule gn=Gsec            gd="   1000      1 Msec">
  2195.   <granule gn=Tsec            gd="   1000      1 Gsec">
  2196.   <granule gn=Psec            gd="   1000      1 Tsec">
  2197.   <granule gn=Esec            gd="   1000      1 Psec">
  2198.   <granule gn=Zsec            gd="   1000      1 Esec">
  2199.   <granule gn=Ysec            gd="   1000      1 Zsec">
  2200.   <granule gn=minute          gd="     60      1 second">
  2201.   <granule gn=quarter-hour    gd="     15      1 minute">
  2202.   <granule gn=half-hour       gd="     30      1 minute">
  2203.   <granule gn=hour            gd="     60      1 minute">
  2204.   <granule gn=day             gd="     24      1 hour">
  2205.   <granule gn=week            gd="      7      1 day">
  2206.   <granule gn=fortnight       gd="      2      1 week">
  2207.  <!-- Year and the granules based on it might not be accurate enough
  2208.       for some applications. -->
  2209.   <granule gn=year            gd="3652422  10000 day">
  2210.   <granule gn=decade          gd="     10      1 year">
  2211.   <granule gn=millenium       gd="   1000      1 year">
  2212.  </measure>
  2213.  
  2214.                 <!-- Systeme International meter -->       <!--A.5.2.5   122-->
  2215. <measure smu=SImeter>
  2216.   <granule gn=ym              gd="      1   1000 zm">
  2217.   <granule gn=zm              gd="      1   1000 am">
  2218.   <granule gn=am              gd="      1   1000 fm">
  2219.   <granule gn=fm              gd="      1   1000 pm">
  2220.   <granule gn=pm              gd="      1   1000 nm">
  2221.   <granule gn=angstrom        gd="      1     10 nm">
  2222.   <granule gn=nm              gd="      1   1000 um">
  2223.   <granule gn=um              gd="      1   1000 mm">
  2224.   <granule gn=mm              gd="      1     10 cm">
  2225.   <granule gn=cm              gd="      1     10 dm">
  2226.   <granule gn=dm              gd="      1     10 meter">
  2227.   <granule gn=meter           gd="      1      1 SIMETER">
  2228.   <granule gn=dam             gd="     10      1 meter">
  2229.   <granule gn=hm              gd="     10      1 dam">
  2230.   <granule gn=km              gd="     10      1 hm">
  2231.   <granule gn=Mm              gd="   1000      1 km">
  2232.   <granule gn=nautical-mile   gd="   1852      1 meter">
  2233.   <granule gn=Gm              gd="   1000      1 Mm">
  2234.   <granule gn=AU              gd="      1 206265 parsec">
  2235.   <granule gn=Tm              gd="   1000      1 Gm">
  2236.   <granule gn=lightyear       gd="    100    326 parsec">
  2237.   <granule gn=Pm              gd="   1000      1 Tm">
  2238.   <granule gn=parsec          gd="   3086      1 Tm">
  2239.   <granule gn=Em              gd="   1000      1 Pm">
  2240.   <granule gn=Zm              gd="   1000      1 Em">
  2241.   <granule gn=Ym              gd="   1000      1 Zm">
  2242.   <granule gn=microinch       gd="      1   1000 milliinch">
  2243.   <granule gn=milliinch       gd="      1   1000 inch">
  2244. <!-- Point and pica are the rounded versions commonly used in computer
  2245.      systems and might not be accurate enough for some applications. -->
  2246.   <granule gn=point           gd="      1     12 pica">
  2247.   <granule gn=pica            gd="      1      6 inch">
  2248.   <granule gn=barleycorn      gd="      1      3 inch">
  2249.   <granule gn=nail            gd="      1     16 yard">
  2250.   <granule gn=inch            gd="    254    100 cm">
  2251.   <granule gn=thumb           gd="      1      1 inch">
  2252.   <granule gn=hand            gd="      4      1 inch">
  2253.   <granule gn=Roman-foot      gd="   1164    100 inch">
  2254.   <granule gn=foot            gd="     12      1 inch">
  2255.   <granule gn=Greek-foot      gd="   1244    100 inch">
  2256.   <granule gn=Northern-foot   gd="     11     10 foot">
  2257.   <granule gn=cubit           gd="     18      1 inch">
  2258.   <granule gn=Sumerian-cubit  gd="    495     10 cm">
  2259.   <granule gn=royal-cubit     gd="   2062    100 inch">
  2260.   <granule gn=yard            gd="      3      1 foot">
  2261.   <granule gn=ell             gd="      5      4 yard">
  2262.   <granule gn=fathom          gd="      6      1 foot">
  2263.   <granule gn=perch           gd="     11      2 yard">
  2264.   <granule gn=pole            gd="      1      1 perch">
  2265.   <granule gn=rod             gd="      1      1 perch">
  2266.   <granule gn=chain           gd="     66      1 foot">
  2267.   <granule gn=furlong         gd="    220      1 yard">
  2268.   <granule gn=quarter-mile    gd="    440      1 yard">
  2269.   <granule gn=mile            gd="   1760      1 yard">
  2270.   <granule gn=league          gd="      3      1 mile">
  2271. </measure>
  2272.  
  2273.               <!-- Other standard measurement units -->    <!--A.5.3     123-->
  2274. <!NOTATION SIkg     PUBLIC -- Mass --
  2275.            "+//ISO/IEC 10744//NOTATION Systeme International kilogram//EN" >
  2276. <!NOTATION SIkelvin PUBLIC -- Thermodynamic Temperature --
  2277.            "+//ISO/IEC 10744//NOTATION Systeme International kelvin//EN" >
  2278. <!NOTATION SIcd     PUBLIC -- Luminous Intensity --
  2279.            "+//ISO/IEC 10744//NOTATION Systeme International candela//EN" >
  2280. <!NOTATION SIampere PUBLIC -- Electric Current --
  2281.            "+//ISO/IEC 10744//NOTATION Systeme International ampere//EN" >
  2282. <!NOTATION SImole   PUBLIC -- Amount of Substance --
  2283.            "+//ISO/IEC 10744//NOTATION Systeme International mole//EN" >
  2284. <!NOTATION SIradian PUBLIC -- Plane Angle --
  2285.            "+//ISO/IEC 10744//NOTATION Systeme International radian//EN" >
  2286. <!NOTATION SIsr     PUBLIC -- Solid Angle --
  2287.            "+//ISO/IEC 10744//NOTATION Systeme International steradian//EN" >
  2288.  
  2289.            <!-- Example declaration for SI derived unit -->
  2290. <!NOTATION SIC      PUBLIC -- Celsius Temperature --
  2291.          "+//ISO/IEC 10744//NOTATION Systeme International degree Celsius//EN" >
  2292.  
  2293.